Vba 使用文件对话框选择器从excel工作表中获取工作表名称
我有一个要求,我需要从一个关闭的excel文件中获取工作表名称,并将其粘贴到活动工作簿“Sheet1”的“a”列上 目前我正在使用此代码,但当我试图通过加载项运行时,它似乎失败了。如果我将此代码粘贴到当前工作簿模块中,则此代码工作正常 请告知Vba 使用文件对话框选择器从excel工作表中获取工作表名称,vba,excel,Vba,Excel,我有一个要求,我需要从一个关闭的excel文件中获取工作表名称,并将其粘贴到活动工作簿“Sheet1”的“a”列上 目前我正在使用此代码,但当我试图通过加载项运行时,它似乎失败了。如果我将此代码粘贴到当前工作簿模块中,则此代码工作正常 请告知 Sub GetTables() Dim directory As String, file As String, sheet As Worksheet, fd As Office.FileDialog, wb As Workbook Dim lastrow
Sub GetTables()
Dim directory As String, file As String, sheet As Worksheet, fd As Office.FileDialog, wb As Workbook
Dim lastrow As Long
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.InitialFileName = "C:\data\Table Updates"
.AllowMultiSelect = True
.Title = "Please select the file to get the records..."
.Filters.Clear
.Filters.Add "Excel 2003", "*.xls?"
If .Show = True Then
file = Dir(.SelectedItems(1))
End If
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
GetSheetsNames (file)
'Workbooks.Open (fileName)
End Sub
Function GetSheetsNames(file)
Dim lastrow As Long, c As Variant
lastrow = 1
Set sh = GetObject(file).Worksheets
For Each c In sh
ActiveWorkbook.Worksheets("Sheet1").Cells(lastrow, 1) = c.Name
ActiveWorkbook.Worksheets("Sheet1").Cells(lastrow, 1) = Trim(ActiveWorkbook.Worksheets("Sheet1").Cells(lastrow, 1))
lastrow = ActiveWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count + 1
MsgBox (c.Name)
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Next
End Function
当您将此作为外接程序运行时,请确保活动工作簿具有
Sheet1,并且存在Book1'。很抱歉,Book1子句只是用于测试。我现在已对其进行了编辑。当您将此作为外接程序运行时,请确保活动工作簿具有Sheet1,并且存在Book1',Book1子句只是为了测试。我现在已经编辑了它。