我試圖導入多個文件表1點的數據和數據存儲在不同的sheetnames爲文件名當前工作簿。 目前,它可以導入,選擇工作表Sheet1的數據,複製它在當前工作簿但與文件名粘貼。有人可以幫我解決這個問題嗎?無法將文件名作爲表名從存儲在導入時
此外,我想知道,如果這是在內存使用量的情況下,最好的辦法是我的目標是用較大的Excel files.Please導入引導我
我的代碼粘貼在這裏..
Sub test()
Dim i As Integer
Dim FileList As Variant
Dim impSheet As String
Dim ActWorkBk As String
Dim ImpWorkBk As String
Dim NoImport As Boolean
impSheet = "Sheet1"
FileList = Application.GetOpenFilename(_
FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx", Title:="Open Workbook", MultiSelect:=True)
Application.ScreenUpdating = False
ActWorkBk = ActiveWorkbook.Name
NoImport = False
For i = 1 To UBound(FileList)
Workbooks.Open (FileList(i))
ImpWorkBk = ActiveWorkbook.Name
On Error Resume Next
ActiveWorkbook.Sheets(impSheet).Select
If Err > 0 Then
NoImport = True
GoTo nxt
End If
Err.Clear
On Error GoTo 0
ActiveWorkbook.Sheets(impSheet).Copy after:=Workbooks(ActWorkBk).Sheets(Workbooks(ActWorkBk).Sheets.Count)
'Renames the imported sheet
On Error Resume Next
ActiveSheet.Name = FileList(i) & " - " & impSheet
Err.Clear
On Error GoTo 0
nxt:
Workbooks(ImpWorkBk).Activate
Application.DisplayAlerts = False
ActiveWorkbook.Saved = True
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True
Workbooks(ActWorkBk).Activate
Next i
'Error if some sheets were not found
If NoImport = True Then MsgBox "One or more sheets could not be found and imported!"
Application.ScreenUpdating = True
End Sub
@ASH你已經給出了答案 ActiveSheet.Name = MID(更換(文件清單(我), 「\」, 「_」),4)& 「 - 」 &impSheet ,但它無法正常工作。 .. 就像如果我選擇date1.xlsx&date2.xlsx ....表名稱將是date1.xlsx-Sheet1中,date2.xlsx-工作表Sheet1 .... – Subhasish1315
我已經刪除了答案,很快,因爲我覺得它不完整。它也沒有解決你更重要的問題*「我想知道如果這是最好的方式」......但是無論如何,從你的代碼看來,你想要什麼? –
Yes..that我想....還有文件清單是一個變體的數據類型,並持有該文件的位置address..am我的權利?如果是的話,有沒有什麼辦法只提取文件名? – Subhasish1315