0
尊敬的Stackoverflow會員,如何將工作簿中的某些工作表導入文件夾中的其他工作簿? (VBA)
在過去,我在堆棧溢出的幫助下創建了一個動態導入腳本。該腳本從文件夾中的工作簿導入所有工作表。
但現在我只想導入名爲'sheet1'的工作表,而不是工作簿中的所有工作表(工作表1,2和3)。
我試圖稍微修改'工作表'變量,但我無法讓它工作。
代碼由宏腳本和一個功能: 這是次
Public Sub Import_sheets_from_dir()
' Import script from http://www.excel-easy.com/vba/examples/import-sheets.html
' Function script from http://stackoverflow.com/questions/19372319/vba-folder-picker-set-where-to-start
On Error GoTo ErrMsg
Dim directory As String
Dim fileName As String
Dim Sheet As Worksheet
Set ActivoWB = ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = GetFolderName() & "/"
fileName = Dir(directory & "*.xl??")
Do While fileName <> ""
Workbooks.Open (directory & fileName)
For Each Sheet In Workbooks(fileName).Worksheets
Workbooks(fileName).Worksheets(Sheet.Name).Copy _
After:=ActivoWB.Sheets(ActivoWB.Sheets.Count)
Next Sheet
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Exit Sub
ErrMsg:
MsgBox prompt:="your doing something wrong"
End Sub
這是被使用的功能:
Public Function GetFolderName(Optional OpenAt As String) As String
Dim lCount As Long
GetFolderName = vbNullString
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = OpenAt
.Show
For lCount = 1 To .SelectedItems.Count
GetFolderName = .SelectedItems(lCount)
Next lCount
End With
End Function
我也想知道哪個名稱更相關的變化,我想使用VBA名稱(紅色,而不是藍色(是在Excel中顯示的工作表名稱))。 Print Screen from VBA window 我想了解兩者的編碼差異。
我試圖修改循環For Each Sheet In Workbooks(fileName).Sheet1
,但這沒有奏效。
你能指導我正確的方向嗎?
在此先感謝!
問候, Dubblej
謝謝@保羅奧格爾維您發佈的第二個選項,就像一個魅力! – Dubblej