在Excel和VBA中,如何将单元格的值设置为公式结果而不是公式

我从一张表中获取数值,并使用Excel中的macros将数据放入另一张表中。 我目前有这个工作正常:

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没有正确评估(我只是以每个单元格中的“ – ”结尾)。 这是可能的,或者我必须有单独的代码循环,并将值更改为单元格的值?

使用:

 sheet.range("B2:B35").Formula = "Your formula here" 

如果这不起作用,您可能需要更改格式(首先执行此操作):

 sheet.range("B2:B35").NumberFormat = "General" 

编辑:

一个解决办法是在OP代码之后添加下面一行:

 sheet.range("B2:B35").value = sheet.range("B2:B35").value