从存储的数组中迭代多个工作表

我已经看到了多个关于这个的post,但似乎没有直接解决我想要做的事情(以我至less理解的方式)。

我期待遍历我的各种表格,并将每张表格中的数据格式化为一张表格; 看起来很简单,但我努力将表单存储到一个数组,通过一个for循环轻松迭代。

我传入main中的formatSheetsArray ,其中存储了以下数据: formatTablesArray = Array(lo.Name, wa.Name, sevenA.Name, oh.Name, at.Name, ob.Name, ra.Name, cvr.Name, ln.Name)

这些工作表已经更改了代码名称以方便操作,但是现在我很困惑我应该如何从数组的angular度遍历它们。 有工作簿中的其他工作表,所以我不能使用sheets.count和我试图使用For Each Worksheet In formatSheetArray和我收到现在我收到相同的错误,这是错误424对象所需。 有什么想法吗?

 Private Sub FormatOiTables(ByVal formatSheetsArray As Variant, ByRef cmeBook As Workbook) Dim loopCounter As Integer, lastRow As Integer For loopCounter = 0 To UBound(formatSheetsArray) lastRow = cmeBook.Sheets(formatSheetsArray(loopCounter)).Cells(formatSheetsArray(loopCounter).Rows.Count, "A").End(xlUp).Row Next End Sub 

您可以制作和使用一系列工作表对象:

formatTablesArray = Array(lo, wa, sevenA....)

然后呢

 for each tbl in formaTablesArray tbl. next 

解决scheme,我刚刚得到解决上述问题。 正如@Siddhart指出的那样,我的cmeDataBook工作簿有一个打字错误,最初input为cmeBook 。 谢谢大家!

 Private Sub FormatOiTables(ByVal formatSheetsArray As Variant, ByRef cmeDataBook As Workbook) Dim WshtNameCrnt As Variant Dim lastRow As Integer For Each WshtNameCrnt In formatSheetsArray cmeDataBook.Sheets(WshtNameCrnt).Activate With Worksheets(WshtNameCrnt) lastRow = .Cells(Worksheets(WshtNameCrnt).Rows.Count, "A").End(xlUp).Row End With MsgBox (lastRow & " " & WshtNameCrnt) Next WshtNameCrnt End Sub