Laufzeitfehler 9
16.08.2018 08:58:05
Martin
ich verzweifle langsam. Bin relativer VBA Neuling und versuche verschiedene Makros aus VBA Büchern nachzustellen. Ich nutze Excel 2010.
Folgende Wunschkonstellation:
Ich habe 2 Excel Dateien, DateiA.xlsx mit Tabellenblatt "Quelle" und DateiB.xlsm mit Tabellenblatt "Ziel".
In der Tabelle "Quelle" steht in Feld A1 einfach nur "abc".
Diesen Text möchte ich mit folgendem Befehl aus DateiA.xlsx Tabellenblatt "Quelle" A1 nach DateiB.xlsm Tabellenblatt "Ziel" nach A1 kopieren.
Workbooks("D:\VBA\DateiA.xlsx").Sheets("Quelle").Range(Cells(1, 1), Cells(1, 1)).Value.Copy _
Workbooks("D:\VBA\DateiB.xlsm").Sheets("Ziel").Range(Cells(1, 1), Cells(1, 1))
Ich würde hier gerne mit Cells arbeiten, um das ganz über Variablen nachher etwas variabler gestalten zu können. Ich habe aber auch mal folgendes probiert mit gleicher Meldung.
Workbooks("D:\VBA\DateiA.xlsx").Sheets("Quelle").Range("A1").Value.Copy _
Workbooks("D:\VBA\DateiB.xlsm").Sheets("Ziel").Range("A1")
Der Aufruf des VBA Codes findet aus der geöffneten DateiB.xlsm statt.
Muss DataA.xlsx erst geöffnet werden, damit der Copy Befehl funktioniert? Das steht im Buch so nämlich nicht drin.
Um es innerhalb einer Arbeitsmappe mal grundsätzlich auszuprobieren, ohne das Problem _
mit der ungeöffneten 2. Excel Datei zu haben, habe ich in der Datei DateiB.xlsm mal das _ Tabellenblatt "Tabelle1" angelegt und dort in A1 "abc" eingetragen. Mit folgendem simplen Code wollte ich ausprobieren, ob ich den Inhalt von A1 mit debug.print ausgeben kann. Auch da kommt leider der Laufzeit 9 Fehler... Ich kapiers einfach nicht...
Sub Verarbeitung()
Dim a As String
a = Workbooks("D:\VBA\DateiB.xlsm").Sheets("Tabelle1").Cells(1, 1).Value
Debug.Print a
End Sub
Hoffe mir kann jemand weiterhelfen.
Die Sache mit den 2 Dateien und den Cells Angaben in der Range wäre das Optimum, aber ich würde es gerne überhaupt erst mal ans Laufen kriegen...