如何在工作簿对象(Excel)中作为stringparameter passing一个数字

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

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

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

如何去作为string传递纯数字SKU代码?

这是可以做的工作:

 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的Worksheet。 然后它会显示此工作簿的此工作表的A1单元格的值。

还有其他方法可以做到这一点,但是这个方法可行。 Text文件应与文件所在的文件夹在同一个文件夹中。 Excel文件Text应该closures。

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