Excel VBA-通过vlookup从各种工作簿填充表格
在下面的代码中,以下行似乎有问题:Excel VBA-通过vlookup从各种工作簿填充表格,vba,excel,lookup-tables,vlookup,Vba,Excel,Lookup Tables,Vlookup,在下面的代码中,以下行似乎有问题: Range(“B4”).Formula=“=索引(C5:AV51,1,列(ActiveCell)-2)” Private子工作表\u更改(ByVal目标作为范围) Application.EnableEvents=False 对于范围内的每个单元格(“C6:AV51”) 范围(“B4”)。公式=“=索引(C5:AV51,1,列(ActiveCell)-2)” 如果ActiveCell.Row-ActiveCell.Column
Range(“B4”).Formula=“=索引(C5:AV51,1,列(ActiveCell)-2)”
Private子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False
对于范围内的每个单元格(“C6:AV51”)
范围(“B4”)。公式=“=索引(C5:AV51,1,列(ActiveCell)-2)”
如果ActiveCell.Row-ActiveCell.Column<3,则
ActiveCell.Formula=“=vlookup(索引(B5:AV51,行()-4,1),”[“&Range(“B4”)。值和“.xlsx]Sheet1'!A1:E70,4,false)”
ElseIf ActiveCell.Row-ActiveCell.Column=3,则
ActiveCell.Value=“”
其他的
ActiveCell.Formula=“=vlookup(索引(B5:AV51,行()-4,1),”[“&Range(“B4”)。值和“.xlsx]Sheet1'!A1:E70,5,false)”
如果结束
下一个
Application.EnableEvents=True
端接头
ActiveCell
是一个对象,因此请替换
range("activecell")
与
范例
if range("activecell").row - range("activecell").column < 3 then
对此
range("B4").formula = "=index(C5:AV51,1," & ActiveCell.Column & ")-2)"
谢谢,这已经大大改进了我的代码。但是,我在这一行中仍然得到了一个错误“否则如果ActiveCell.row-ActiveCell.column=3,那么”谢谢,但是代码仍然不能工作。如果你能看一下的话,我已经在我的第一篇文章中更新了它:)将
列(ActiveCell)
更改为ActiveCell.column
,就像我在回答中显示的那样。请注意,更新问题以完全改变上下文是不好的做法。您应该重新编辑以恢复原始问题,并添加新代码作为更新,以便其他人可以看到答案如何解决问题谢谢您指出,我会记住这一点。我已经实现了所有建议的更改,但是,它似乎仍然不起作用;出现一个错误,在下面的行ActiveCell.Formula=“=vlookup(索引(B5:AV51,row()-4,1),”[“&Range(“B4”).Value&“.xlsx]Sheet1'!A1:E70,4,false)”
if range("activecell").row - range("activecell").column < 3 then
if ActiveCell.row - ActiveCell.column < 3 then
range("B4").formula = "=index(C5:AV51,1,column("activecell")-2)"
range("B4").formula = "=index(C5:AV51,1," & ActiveCell.Column & ")-2)"