Sehr geehrte Stackoverflow Mitglieder,Wie können bestimmte Arbeitsblätter aus Arbeitsmappen in eine andere Arbeitsmappe aus einem Ordner importiert werden? (VBA)
In der Vergangenheit habe ich mit Hilfe von Stack Overflow ein dynamisches Import-Skript erstellt. Dieses Skript importiert alle Arbeitsblätter aus Arbeitsmappen in einen Ordner.
Aber jetzt möchte ich nur die Blätter 'Blatt1' importieren, anstatt alle Blätter aus einer Arbeitsmappe (Blatt 1, 2 und 3).
Ich habe versucht, die 'Arbeitsblätter' Variable leicht zu ändern, aber ich konnte es nicht zum Funktionieren bringen.
Der Code besteht aus einem Makro-Skript und eine Funktion: Dies ist der
Sub istPublic 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
Dies ist die verwendete Funktion:
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
Ich frage mich auch, welcher Name zu ändern relevantere , ich möchte den VBA-Namen wie verwenden (das rote anstelle des blauen (ist Blatt Name in Excel angezeigt)). Print Screen from VBA window Ich würde gerne erfahren, was wäre der Unterschied in der Codierung für beide.
Ich habe versucht, die Schleife For Each Sheet In Workbooks(fileName).Sheet1
zu ändern, aber das hat nicht funktioniert.
Können Sie mir bitte in die richtige Richtung führen?
Vielen Dank im Voraus!
Grüße, Dubblej
Danke @ Paul Ogilvie die zweite Option, die Sie gebucht, wirkt wie ein Zauber !! – Dubblej