我正在尝试遍历工作表并根据工作表名称插入一个公式。下面的代码仅在第一个工作表上循环通过。
Sub test()
Dim wsSheet As Worksheet
Dim strFormulas As Variant
Dim Lastrow As Long
For Each wsSheet In Worksheets
If wsSheet.Name = "Maintenance Formatting" Or _
wsSheet.Name = "Fuel Formatting" Then
strFormulas1 = "=VLOOKUP(C2,[BillingReportMacros.xlsm]Sheet1!$G:$J,4,FALSE)"
Lastrow = Range("F1").CurrentRegion.Rows.Count + 1
Range("A2").Formula = strFormulas1
Range("A2:A" & Lastrow).FillDown
End If
Next wsSheet
End Sub
答案 0 :(得分:0)
主要问题是循环中的代码未引用工作表,因此默认情况下仅适用于活动工作表。而且这永远不会改变。
如果工作表引用放置在错误的位置,也许您可以找出纠正方法。
此外,如果要处理多个打开的工作簿,则应添加工作簿引用以及工作表引用。
Sub test()
Dim wsSheet As Worksheet
Dim strFormulas As String
Dim Lastrow As Long
For Each wsSheet In Worksheets
If wsSheet.Name = "Maintenance Formatting" Or wsSheet.Name = "Fuel Formatting" Then
strFormulas = "=VLOOKUP(C2,[BillingReportMacros.xlsm]'" & wsSheet.Name & "'!$G:$J,4,FALSE)"
Lastrow = wsSheet.Range("F1").CurrentRegion.Rows.Count + 1
wsSheet.Range("A2:A" & Lastrow).Formula = strFormulas
End If
Next wsSheet
End Sub