如何使用VBA将excel公式放入单元格的动态范围?
我是VBA新手,正在使用以下代码段使用vlookup函数填充一系列单元格:如何使用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”和.
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行中“,”的用法吗?
下划线
只是将一长行代码分成两行。我在这里使用它来提高代码的可读性它实际上是空格
,后面是下划线