Hey Tim,
wow... trotz Deiner Beschreibung verstehe ich wohl nicht so richtig, was
genau Du willst. Ich versuche es mal in einfachen Worten zusammen zu fassen:
In Deiner Tabelle 1 (sheet(0)) steht in der Zelle B2 zum Beispiel eine
Zelladresse wie "d36"?
Nun möchtest Du diese auslesen und in den Zielbereich (bei Dir die Zelle
"D1") eintragen?
Nun, das wäre ziemlich einfach. Eine Zelle kann nur einen der drei Typen
aufnehmen: Texte (Strings), Werte oder Formeln. Eine Zelladresse wäre
immer ein Text ("D36") - also auslesen und der Zeilzelle zuweisen. Fertig.
Den Umweg über einen Datenarray kannst Du dir hier absolut sparen - das
würde Dir nur helfen, wenn Du mehrere Werte eines zusammenhängenden
Bereiches in einen anderen - wohlgemerkt gleich großen - Bereich
kopieren möchtest.
Würde also reichen:
sub KopieUndInsertDaten
dim oTab as variant, oZielzelle as Variant, oQuellZelle as string
For i = 1 to 1 '???
oTab=thisComponent.sheets(0)
oQuellZelle=oTab.getCellRangeByName("B2")
oCopyZelle=oTab.getCellRangeByName(oQuellZelle.string)
oZielZelle = oTab.getCellRangeByName("D1")
REM da der Inhalt wahrscheinlich nicht sicher bekannt ist, verwende
Formula - das passt immer
oZielZell.formula = oCopyZelle.formula
Next i
end sub
Wahrscheinlich willst Du mit der Schleife über die einzelnen Zellen
iterieren - geht natürlich, so würde dann eben statt "B2" dort stehen
"B" & i ...oder so
viele Grüße
Thomas
Am 30.12.2019 um 18:42 schrieb Tim Herb:
Hallo,
ich nutze viel LibreOfficeCalc und ich möchte hierin auch Makros nutzen.
Ich bin auf der Suche nach einer Möglichkeit, dass ich die Zellen, die
kopiert werden sollen in einer Zelle im Tabellenblatt stehen habe.
Hierzu habe ich die Variable oZelle im untenstehenden Makro und diese
soll aus den Bereich von B1 bis B5 den Wert von B2 auslesen. In B2 auf
dem Tabellenblatt steht der Name der Zelle die kopiert werden soll und
die dann in D1 eingefügt werden soll. Beim ausführen des Makros erhalte
ich eine Fehlermeldung. Wie muss ich das Makro anpassen, damit es
funktioniert. Gibt es in LibreOffice eine Möglichkeit, die Zelle die
kopiert werden soll in einer Zelle im Tabellenblatt stehen zu haben. In
VBA gibt es die Möglichkeit mithilfe von Cells, die Zelle anzugeben, aus
der der Wert der Variablen stammt.
sub KopieUndInsertDaten
dim aData()
dim oTab as variant,oBereich as Variant,oZielbereich as Variant
For i = 1 to 1
oTab=thisComponent.sheets(0)
oZelle=ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B1:B5").getCellByPosition(1,1).Value
oBereich=oTab.getCellRangeByName(oZelle)
aData=oBereich.getDataArray()
oZielbereich=oTab.getCellRangeByName("D1")
oZielbereich.setDataArray(aData)
Next i
end sub
Es würde mich freuen, wenn mir hier jemand helfen kann.
Vielen Dank
Gruß
Tim
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.