如何使用VBA将excel公式放入单元格的动态范围?

如何使用VBA将excel公式放入单元格的动态范围?,vba,excel,Vba,Excel,我是VBA新手,正在使用以下代码段使用vlookup函数填充一系列单元格: With wbk1.Sheets("classes") .Range("AA2:AA" & .Range("C" & .Rows.Count).End(xlUp).Row).Formula = "=VLOOKUP(C2,lookup!$A$2:$B$14,2,FALSE)" 'Actual vlookup 为了使这个部分成为动态的,我想用一个动态引用替换.Range(“AA2:AA”和.

我是VBA新手,正在使用以下代码段使用vlookup函数填充一系列单元格:

With wbk1.Sheets("classes") 
       .Range("AA2:AA" & .Range("C" & .Rows.Count).End(xlUp).Row).Formula = "=VLOOKUP(C2,lookup!$A$2:$B$14,2,FALSE)" 'Actual vlookup
为了使这个部分成为动态的,我想用一个动态引用替换
.Range(“AA2:AA”和.Range(“C”和.Rows.Count)
部分(在我的例子中是同一工作表中的第一个空列)

首先,我找到第一个带有一行的空列:

first_empty_column = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
然而,当我

With wbk1.Sheets("classes")
   .Range(ws.Cells(1, first_empty_column) & .Range("C" & .Rows.Count).End(xlUp).Row).Formula = "=VLOOKUP(C2,lookup!$A$2:$B$14,2,FALSE)" 'Actual vlookup
我得到“运行时错误'1004”:应用程序定义了一个对象定义的错误


在此上下文中动态定义硬编码范围的语法是什么?

您需要使用以下
范围参考
逻辑:

'PSEUDO-CODE
.Range(LeftTopCell, RightBottomCell)
其中
LeftTopCell
RightBottomCell
都可以使用任何有效的范围引用进行设置。 此外,您不能从两个不同的工作表中组合对范围的引用。您在单个范围引用中同时引用了
ws
工作表(“类”)

试试这个:

With wbk1.Sheets("classes")

   .Range(.Cells(1, first_empty_column), _
          .Cells(.Range("C" & .Rows.Count).End(xlUp).Row, first_empty_column)).Formula = "=VLOOKUP(C2,lookup!$A$2:$B$14,2,FALSE)" 'Actual vlookup

End With

非常有魅力-非常感谢-您能详细说明一下答案第3行中“,”的用法吗?
下划线
只是将一长行代码分成两行。我在这里使用它来提高代码的可读性它实际上是
空格
,后面是
下划线