Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用文件对话框选择器从excel工作表中获取工作表名称_Vba_Excel - Fatal编程技术网

Vba 使用文件对话框选择器从excel工作表中获取工作表名称

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

我有一个要求,我需要从一个关闭的excel文件中获取工作表名称,并将其粘贴到活动工作簿“Sheet1”的“a”列上

目前我正在使用此代码,但当我试图通过加载项运行时,它似乎失败了。如果我将此代码粘贴到当前工作簿模块中,则此代码工作正常

请告知

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子句只是为了测试。我现在已经编辑了它。