在Excel中使用VBA运行公式 - 公式在参考单元格激活之前不起作用

时间:2013-08-12 16:48:27

标签: excel excel-vba excel-2007 vba

在VBA中工作,我有一个简单的工作表函数,我希望粘贴一定数量的行。

Dim RowCount As Integer

RowCount = Worksheets("Sheet1").Range("H2").End(xlDown).Row

With Worksheets("Sheet1")
    .Range("L2" & RowCount).Value = "=IF(H2=""TRUE"",G2,"""")"
    .Range("M2" & RowCount).Value = "=IF(I2=""TRUE"",G2,"""")"
    .Range("N2" & RowCount).Value = "=IF(J2=""TRUE"",G2,"""")"
    .Range("O2" & RowCount).Value = "=IF(K2=""TRUE"",G2,"""")"
End With

我的计算选项设置为自动,因此不是问题。我也在函数中使用“”作为字符串。

代码将工作表函数放在应该去的位置,但逻辑不起作用。它总是错误的。但是,当我单击函数(I2,J2,K2)引用的H2单元格,然后转义单元格时,H2中的文本向左移动,公式有效!我不想为数千个订单项执行此操作。我该怎么办?

1 个答案:

答案 0 :(得分:0)

使用数组公式而不是逐个单元格公式。这样您就可以为整个范围输入一次公式。有关详细信息,请参见此处:http://office.microsoft.com/en-us/excel-help/introducing-array-formulas-in-excel-HA001087290.aspx。录制宏时手动完成,然后根据需要调整代码。