是否可以遍历工作表列表并执行一些具有来自不同工作表列表的工作表引用的计算?例如,您有一个工作表的列表(列表1),它将是计算的目标,并且您有第二个计算所基于的工作表列表(列表2)。因此,假设列表1中有sheet1和sheet2,列表2中有sheetA和sheetB。基于sheetA的计算将出现在sheet1中,基于sheetB的计算将出现在sheet2中。我认为代码看起来像这样:
Sub LoopthroughWorksheets()
Dim sheet_name As Range
Dim sheet_name2 As Range
Set sheet_name2 = Sheets("WS").Range("F:F")
For Each sheet_name In Sheets("WS").Range("C:C")
If sheet_name.Value = "" Then
Exit For
Else
With Sheets(sheet_name.Value)
.Range("K1") = .Range("sheet_name2.Value!A14").Value
End With
End If
Next sheet_name
End Sub
我在此行收到“运行时错误'1004:应用程序定义或对象定义错误”:.Range("K1") = .Range("sheet_name2.Value!A14").Value
非常感谢任何帮助。
问候,
答案 0 :(得分:1)
是的,这是可能的,但你的代码是错误的。
您必须以某种方式迭代C和F列,然后检索匹配的工作表名称:
Sub LoopthroughWorksheets()
Dim sheet_name As Range
Dim sheet_name2 As Range
Set sheet_name2 = Sheets("WS").Range("F:F")
' NEW
Dim counter As Long
counter = 1
For Each sheet_name In Sheets("WS").Range("C:C")
If sheet_name.Value = "" Then
Exit For
Else
With Sheets(sheet_name.Value)
.Range("K1").Value = Sheets(sheet_name2(counter, 1).Value).Range("A14").Value
' NEW ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
counter = counter + 1
End With
End If
Next sheet_name
End Sub