使用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