Ich arbeite bei einer Bank und wir erhalten regelmäßig vierteljährliche Daten von Nasdaq Smart über Marktmissbrauch. Mir wurde die Aufgabe zugewiesen, ein Makro zu erstellen, das diese Daten zusammenfasst, um Marktmissbrauch über längere Zeiträume hinweg sichtbar zu machen.Eingabedaten von einer ausgewählten Datei mit VBA
Bisher kann ich manuell auswählen welche Arbeitsmappe ich interessiere und dann wird automatisch der Teil der Arbeitsmappe ausgewählt, den ich importieren möchte.
Das Problem, das ich habe, ist, dass es die ausgewählten Daten nicht in die neue Datei eingibt. Wenn ich dem Compiler vertrauen kann, dann ist das Problem, dass die Bereichsfunktion in diesem Fall nicht unterstützt wird.
Private Sub CommandButton23_Click()
Dim wkbCrntWorkBook As Workbook
Dim wkbSourceBook As Workbook
Dim rngSourceRange As Range
Dim rngDestination As Range
Dim bottomCell As Range
Dim rngTemp As Range
Set wkbCrntWorkBook = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
.Filters.Clear
.Filters.Add "Excel 97-2003", "*.xlsx; *.xlsm; *.xlsa , *.xls"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
Workbooks.Open .SelectedItems(1)
Set wkbSourceBook = ActiveWorkbook
Set bottomCell = wkbSourceBook.Sheets("par_ACCOUNT").Cells.Find(what:="Account by Type")
Set rngTemp = wkbSourceBook.Sheets("par_ACCOUNT").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not rngTemp Is Nothing Then
wkbSourceBook.Sheets("par_ACCOUNT").Range(bottomCell, rngTemp.Offset(0, 65)).Select
End If
wkbCrntWorkBook.Activate
Set rngDestination = wkbCrntWorkBook.Range("A1")
Selection.Copy rngDestination
rngDestination.CurrentRegion.EntireColumn.AutoFit
wkbSourceBook.Close False
End If
End With
End Sub
Vielen Dank allen im Voraus für Ihre Hilfe. Dies ist das erste Mal, dass ich mit VBA und Stackoverflow arbeite, daher ist jede Art von Hilfe willkommen.
'Set rngDestination = wkbCrntWorkBook.Range ("A1")' - Sie kein Blatt angeben. – SJR
Sie sollten auf keinen Fall '.Select' verwenden. Es ist auch besser, 'ThisWorkbook' anstelle von' ActiveWorkbook' zu verwenden. Nach Ihrer Auswahl wechseln Sie die WBs, was wahrscheinlich zu einem Fehler beim Kopieren führt. – UGP
@UGB vielen Dank für die Hilfe. Warum sollte ich in Zukunft keine Auswahl verwenden? – ShieldData