使用VBA循环在Excel工作簿中查找所有工作表不起作用

我正试图在工作簿中的每个工作表上执行相同的function(一个单独的Excel工作簿中的一个表VLookup)。 我有一个VBA脚本内置,但循环不工作。 VLookup可以在任何表单上工作,但不会在其他表单上循环。

脚本:

Sub loop_through_all_worksheets() Dim ws As Worksheet Dim starting_ws As Worksheet Set starting_ws = ActiveSheet For Each ws In ThisWorkbook.Worksheets Range("AE2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1], [Vendor.xlsx]AP210!C1:C2,2,FALSE)" Range("AE2").Select Selection.AutoFill Destination:=Range("AE2:AE49") Range("AE2:AE49").Select Columns("AE:AE").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False starting_ws.Activate Next End Sub 

注意:“Vendor.xlsx”是第二个文件中的查找表。

我把自己的VLookup脚本拼凑在一起,并将其添加到我find的循环脚本中。

选项卡的数量和每个选项卡的名称都是可变的

任何input为什么循环不工作? 我完全脱离这个基础吗?

预先感谢您的帮助

避免。select和。 .Activate

与块一起使用,并使用循环对象设置父级工作表。

 Sub loop_through_all_worksheets() Dim ws As Worksheet Dim starting_ws As Worksheet Set starting_ws = ActiveSheet For Each ws In ThisWorkbook.Worksheets With ws.Range("AE2:AE49") .FormulaR1C1 = "=VLOOKUP(RC[-1], [Vendor.xlsx]AP210!C1:C2,2,FALSE)" .Value = .Value End With Next starting_ws.Activate End Sub