Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA-通过vlookup从各种工作簿填充表格_Vba_Excel_Lookup Tables_Vlookup - Fatal编程技术网

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)"