自动填充配方VBA

寻找一些VBAfunction的帮助

我有两张纸上需要执行索引匹配的数据。

每次运行比较数据大小都会有所不同。

我编写了VBA调用数据并填充两张表,但运行比较是造成问题。

我已经创build了下面的函数,它的运行没有错误,但没有填充单元格中从J2开始到J范围结束的公式。

Sub FormulaFill() Dim strFormulas(1 To 1) As Variant With ThisWorkbook.Sheets("Export Worksheet") strFormulas(1) = "=INDEX('sheet1'!E:E,MATCH('Export Worksheet'!A2,'sheet1'!A:A,0))" .Range("J:J").FillDown End With End Sub 

任何帮助将不胜感激。

w ^

应用更新的代码后的图像

在这里输入图像说明

您正在将公式写入数组variables而不是单元格,然后尝试使用J:J填充整个列。 这意味着它试图用单元格J1的内容填充整列,而不是J2

这里是更正的代码。

 Sub FormulaFill() With ThisWorkbook.Sheets("Export Worksheet") .Cells(2, 10).Formula = "=INDEX('sheet1'!E:E,MATCH('Export Worksheet'!A2,'sheet1'!A:A,0))" .Range(.Cells(2, 10), .Cells(.Cells(.Rows.Count, 9).End(xlUp).Row, 10)).FillDown End With End Sub 

.Cells(.Rows.Count, 9).End(XlUp).Row确定列9(I)的最后一个填充行,并且代码使用该范围中的该数字用于列10(J)的自动填充

这是因为你没有用公式来填充单元格。

 Sub FormulaFill() Dim strFormulas(1 To 1) As Variant With ThisWorkbook.Sheets("Export Worksheet") strFormulas(1) = "=INDEX('sheet1'!E:E,MATCH('Export Worksheet'!A2,'sheet1'!A:A,0))" .Range("J1").Forumla = strFormulas(1) .Range("J:J").FillDown End With End Sub