Ms access 访问VBA-函数以创建一个数组,其中包含选定excel工作簿的所有工作表的名称

Ms access 访问VBA-函数以创建一个数组,其中包含选定excel工作簿的所有工作表的名称,ms-access,vba,Ms Access,Vba,这是我的第一个项目之一。 我正在使用Access尝试将我选择为表的excel的所有工作表上载到数据库。 为此,我创建了一个我在程序中回忆起的函数;此函数应读取excel文件中工作表的名称,并将其保存在数组/集合中。您建议使用哪一个?工作表的数量不是固定的。这是我目前的代码,但它不能正常工作,因为我在数组中只找到最后一个工作表,而不是所有以前的工作表: 函数Get\u Sheetsname\u Arrayxlsfile 暗色床单作为收藏 Dim LookupWeb作为Excel.Applicati

这是我的第一个项目之一。 我正在使用Access尝试将我选择为表的excel的所有工作表上载到数据库。 为此,我创建了一个我在程序中回忆起的函数;此函数应读取excel文件中工作表的名称,并将其保存在数组/集合中。您建议使用哪一个?工作表的数量不是固定的。这是我目前的代码,但它不能正常工作,因为我在数组中只找到最后一个工作表,而不是所有以前的工作表:

函数Get\u Sheetsname\u Arrayxlsfile 暗色床单作为收藏 Dim LookupWeb作为Excel.Application 以字符串形式显示文本

Set lookupWB = New Excel.Application
lookupWB.Workbooks.Open xlsfile

toIndex = lookupWB.Worksheets.Count

Dim i As Integer

With lookupWB
    For Each wrksheet In .Worksheets
        sheetsLst = Array(.xlSheet.Name)
    Next wrksheet
End With


Get_Sheetsname_Array = sheetLst

结束函数

您的代码当前覆盖每个图纸名称,因此只有最后一个保存在变量中。您需要在不覆盖的情况下将它们添加到数组中。大概是这样的:

Sub SaveSheetsIntoArray()
    Dim shArray, i
    ReDim shArray(1 To Sheets.count)
    For i = 1 To Sheets.count
        shArray(i) = ThisWorkbook.Sheets(i).Name
        Debug.Print shArray(i)
    Next
    'do something with the array "shArray"
End Sub

另外,如果VBA代码中还没有选项,请在第一行添加一个显式选项。

这对您有帮助吗?如果没有,请告诉我们您是否需要更多信息来解决您的问题。如果是,请将此作为答案关闭。