1

我从一张表中获取值并使用 Excel 中的宏将它们放在另一张表中。我目前有这个工作正常:

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 无法正确评估(我只是在每个单元格中添加“-”)。这是可能的还是我必须有单独的代码来循环并将值更改为单元格的值?

4

1 回答 1

4

利用:

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
于 2012-10-04T23:58:01.087 回答