1

我正在使用 for 循环处理 300 个 SKU 的数据,其中一些 SKU 代码纯数字。每个 SKU 的原始数据位于单独的文件中,工作簿和工作表名称都与 SKU 代码相同。我面临的错误是索引超出范围,如下所示:

Workbooks(wbnamex).Sheets(wbnamex).Cells(k, 2)

wbnamex 包含 SKU 代码,而作为数字的代码会导致错误。对象工作簿将其作为序列号而不是名称。

如何将纯数字 SKU 代码作为字符串传递?

4

1 回答 1

0

这是可以完成这项工作的:

Option Explicit

Public Sub TestMe()

    Dim strName     As String
    Dim wb          As Workbook
    Dim wsAny       As Worksheet
    Dim ws          As Worksheet

    strName = "Text"

    Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & strName & ".xlsm")

    For Each wsAny In wb.Worksheets
        If wsAny.Name = strName Then
            Set ws = wsAny
        End If
    Next wsAny

    Debug.Print ws.Cells(1, 1)

End Sub

Text.xlsm您还需要一个名为Worksheet的 Excel 文件Text。然后它将显示此工作簿的此工作表的 A1 单元格的值。

还有其他方法可以做到这一点,但这一种有效。该Text文件应与此代码所在的文件位于同一文件夹中。Excel 文件Text也应该关闭。

您可以进一步编辑代码,使其适用于其他文件夹和已打开的文件。

于 2017-08-22T15:37:11.497 回答