1
我從一張工作表中獲取值並將其放入另一張使用Excel中的宏。我目前有這個工作正常:在Excel和VBA中,如何將單元格的值設置爲公式結果而不是公式
sheet.range("B2:B35").Value = "=IF(SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322)<>0,SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322),""-"")"
它顯然,把整個公式作爲單元格的值。我想要的只是將公式的結果放入單元格中。我試着在「IF ...」部分添加Evaluate(),但是IF沒有正確評估(我在每個單元格中都以「 - 」結尾)。這有可能做或我必須有單獨的代碼來循環,並將值更改爲單元格的值?
最初的代碼已經在使用.Formula而不是.Value(我在使用Evaluate時都嘗試過)。這並沒有改變放入單元格的內容。單元格上的格式已經是General,儘管這似乎是自動的;我沒有專門通過代碼來設置它。 – Kurt
奇怪。如果你運行它,然後選擇它並執行以下操作(在直接窗口中):Selection.NumberFormat =「General」,然後Selection.Value = Selection.Value,你會得到什麼? – mkingston
修改你稍微說的話:添加sheet.range(「B2:B35」)。Value = sheet.range(「B2:B35」)。Value使它成爲一個數字。那就是有效的。我只是希望我不必這樣做,因爲我在循環中有大約5次以上的代碼。好吧。很容易添加一行代碼。 – Kurt