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



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

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

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

如何将纯数字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的工作表。然后它将显示此工作簿的此工作表的A1单元格的值。

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

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

最新更新