如何在工作簿对象(excel)中将数字作为字符串参数传递

时间:2017-08-22 15:18:48

标签: excel vba excel-vba sku

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

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

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

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

1 个答案:

答案 0 :(得分: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的Excel文件,其中包含一个名为Text的工作表。然后它将显示此工作簿的此工作表的A1单元格的值。

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

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