循环遍历工作表并根据dynamic工作表参考执行计算

是否有可能通过表单列表进行循环,并执行一些计算工作表的不同列表中的工作表引用? 例如,您有一个工作表的列表(列表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

任何帮助深表感谢。

问候,

是的,这是可能的,但你的代码是错误的。

您将不得不在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