Seite 1 von 1

basic Makro welches einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügt

Verfasst: Do 1. Jun 2023, 15:48
von Hannes1966
Hallo,

ich möchte einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügen, leider gelingt mir dies nicht. Bekomme in der Zeile "Daten in den Zielbereich kopieren" immer einen Fehler. Kann mir jemand helfen?

Grüße Hannes


Sub DatenEinfuegen()
Dim QuellDok As Object
Dim ZielDok As Object
Dim QuellTabelle As Object
Dim ZielTabelle As Object
Dim DatenBereich As Object
Dim ZielZeile As Long

' Pfad und Dateiname der Quelldatei
Dim quellDatei As String
quellDatei = "C:\Users"

' Pfad und Dateiname der Zieldatei
Dim zielDatei As String
zielDatei = "C:\Users\"

' Öffnen der Quelldatei
QuellDok = StarDesktop.loadComponentFromURL(ConvertToURL(quellDatei), "_blank", 0, Array())

' Öffnen der Zieldatei
ZielDok = StarDesktop.loadComponentFromURL(ConvertToURL(zielDatei), "_blank", 0, Array())

' Festlegen der Quelltabelle
QuellTabelle = QuellDok.Sheets(0)

' Festlegen der Zielzeile, in die die Daten eingefügt werden sollen
ZielZeile = 1

' Festlegen der Ziel-Tabelle
ZielTabelle = ZielDok.Sheets(0)

' Festlegen des Datenbereichs, der in die Ziel-Tabelle eingefügt werden soll
DatenBereich = QuellTabelle.getCellRangeByName("A1:B5")

' Daten in den Zielbereich kopieren
ZielTabelle.getCellByPosition(0, ZielZeile).setDataArray(DatenBereich.getDataArray())

' Schließen der Dokumente
QuellDok.close(True)
ZielDok.close(True)
End Sub

Re: basic Makro welches einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügt

Verfasst: Do 1. Jun 2023, 17:39
von karolus
Hallo

siehe Kommentare im Code

Code: Alles auswählen

Sub DatenEinfuegen()
Dim QuellDok As Object
Dim ZielDok As Object
Dim QuellTabelle As Object
Dim ZielTabelle As Object
Dim DatenBereich As Object
Dim ZielZeile As Long

' Pfad und Dateiname der Quelldatei'
Dim quellDatei As String
quellDatei = "C:\Users"         '#### hier fehlt offensichtlich der Dateiname #####'

' Pfad und Dateiname der Zieldatei'
Dim zielDatei As String
zielDatei = "C:\Users\"       '###### hier ebenso #####'

' Öffnen der Quelldatei
QuellDok = StarDesktop.loadComponentFromURL(ConvertToURL(quellDatei), "_blank", 0, Array())

' Öffnen der Zieldatei
ZielDok = StarDesktop.loadComponentFromURL(ConvertToURL(zielDatei), "_blank", 0, Array())

' Festlegen der Quelltabelle
QuellTabelle = QuellDok.Sheets(0)

' Festlegen der Ziel-Tabelle
ZielTabelle = ZielDok.Sheets(0)

' Festlegen des Datenbereichs, der in die Ziel-Tabelle eingefügt werden soll
DatenBereich = QuellTabelle.getCellRangeByName("A1:B5")

' Daten in den Zielbereich kopieren
' ##### der Zielbereich muss die passende Größe haben !!!! #########
ZielTabelle.getCellRangeByName("A1:B5").setDataArray(DatenBereich.getDataArray())

' Schließen der Dokumente …
QuellDok.close(True)
ZielDok.store() ' ##### …aber das Speichern nicht vergessen #####
ZielDok.close(True)
End Sub