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