Hallo,
Ich habe folgenes Problem: Ich habe Messdaten die immer in einzelnen Excelfiles stehen. Die sollen alle Eingelesen werden und auf ein Tabellenblatt geschrieben werden. Dazu hat mal jemand hier in der Firma folgenden Code erstelllt:
Da diese Variante ja immer Activiert ist sie natürlich relativ langsam.
Ich habe jetzt probiert das ohne Activate und Copy nachzubauen, bekomme aber immer in Zeile 18 die Fehlermeldung: Laufzeitfehler 438, Objekt unterschützt diese Methode oder Eigenschaft nicht. Ich vermute ich habe die Cells in der Range nicht richtig angesprochen. Könnte jemand bitte mal drüberschauen und mir bitte auch erklären wie man das richtig macht?
Danke Schon mal
Gruß Darky
Ich habe folgenes Problem: Ich habe Messdaten die immer in einzelnen Excelfiles stehen. Die sollen alle Eingelesen werden und auf ein Tabellenblatt geschrieben werden. Dazu hat mal jemand hier in der Firma folgenden Code erstelllt:
Visual Basic-Quellcode
- Sub einladen(i As Integer)
- Dim n As Integer
- DieseDatei = ActiveWorkbook.Name
- Set AlleDateien = Application.FileDialog(msoFileDialogOpen)
- With AlleDateien
- .AllowMultiSelect = True
- If .Show = -1 Then
- For Each Datei In .SelectedItems
- x = x + 2
- Set Dnam = Workbooks.Open(Datei)
- n = Cells(Cells.Rows.Count, 1).End(xlUp).Row
- Range("A1:A" & n).Copy
- Windows(DieseDatei).Activate
- Cells(4, x ).PasteSpecial xlPasteValues
- Application.CutCopyMode = False
- Dnam.Close False
- Next
- End If
- End With
- End Sub
Da diese Variante ja immer Activiert ist sie natürlich relativ langsam.
Ich habe jetzt probiert das ohne Activate und Copy nachzubauen, bekomme aber immer in Zeile 18 die Fehlermeldung: Laufzeitfehler 438, Objekt unterschützt diese Methode oder Eigenschaft nicht. Ich vermute ich habe die Cells in der Range nicht richtig angesprochen. Könnte jemand bitte mal drüberschauen und mir bitte auch erklären wie man das richtig macht?
Visual Basic-Quellcode
- Sub einladen(j, p, q, x)
- Dim n As Integer
- Dim quelle As Worksheet
- Dim RD As Worksheet
- x = 2 * i - 1
- With Sheets("Rohdaten")
- .Visible = True
- .Select
- DieseDatei = ActiveWorkbook.Name
- Set AlleDateien = Application.FileDialog(msoFileDialogOpen)
- With AlleDateien
- .AllowMultiSelect = True
- If .Show = -1 Then
- For Each Datei In .SelectedItems
- x = x + 2
- Set Dnam = Workbooks.Open(Datei)
- Set quelle = ActiveSheet
- DieseDatei.RD.Range(DieseDatei.RD.Cells(2, x), DieseDatei.RD.Cells(q - p, x)).Value = Dnam.quelle.Range(Dnam.quelle.Cells(p, x), Dnam.quelle.Cells(q, x)).Value
- Dnam.Close False
- Next
- End If
- End With
- End With
- End Sub
Danke Schon mal
Gruß Darky