Hallo,
nitja hat geschrieben:Es kopiert dann und nur dann, wenn der Quellbereich keine leere Zelle enthält. (Und keine verbundenen, auch wenn die versteckten nicht leer sind)
nitja hat geschrieben:Falls Du damit den Zielbereich meinst: das ist so gewollt.
Der Basic-Interpreter arbeitet den Quellcode Zeile für Zeile ab.
Die Frage welche ich mir stellte war, ob sich bei den EINZELNEN
Kopiervorgängen die Zellbereiche gegenseitig überschreiben:
A überschreibt Teile oder alles von B
B überschreibt Teile oder alles von C
usw.
Danach sieht es so aus, als wäre irgendetwas nicht abgearbeitet worden.
Tatsächlich liegt es in der eigenen Syntax zur Bereichsberechnung.
Code: Alles auswählen
REM Bereich 1 ' first row
oRngCM = .getCellRangeByPosition(0, 33*(iPg-1), 5, 33*(iPg-1))
oRngNM = .getCellByPosition(0, 33*iPg)
REM Bereich 1 wird teilweise oder ganz von von Bereich 2 überschrieben:
' first column
oRngCM = .getCellRangeByPosition(0, 33*iPg-32, 0, 33*iPg-2)
oRngNM = .getCellByPosition(0, 33*iPg+1)
getCellRangeByPosition( nLeft, nTop, nRight, nBottom)
nLeft=0
nTop=33*(iPg-1)
nRight=5
nBottom=33*(iPg-1)
.getCellRangeByPosition(0, 33*(iPg-1), 5, 33*(iPg-1))
-------------------------
getCellByPosition(nColumn, nRow )
nColumn = 0 → Spalte A
nRow = 33*iPg → Zeile 34*iPg = Zeile

.getCellByPosition(0, 33*iPg)
Eine diesbezüglich Fehleranalyse kann ganz einfach durchgeführt werden,
in dem Du alle Codeabschnitte, bis auf den ersten (
' first row) auskommentierst.
Das Makro startest und das Ergebnis prüfst.
Dann prüfst Du die Zusammenarbeit des ersten (
' first row) und des zweiten (
' first column) Codeabschnitts.
usw...
Irgendwann sollte sich die Ungereimtheit, fehlerhafte Syntax zeigen.
nitja hat geschrieben:Eine Frage noch zu xray und sdk: Wohin muss das sdk für LO in Linux kopiert werden?
Die SDK brauchst Du nicht. XRAY arbeitet auch ohne Angabe einer SDK oder einer Pfadangabe zur API.
Letzteres würde ich auf jeden Fall offen lassen, weil XRAY eigentlich für AOO konzipiert wurde und folgende Seite
erwartet:
https://www.openoffice.org/api/docs/com ... dex-1.html
Für LibreOffice müsste diese API-Seite angegeben werden:
https://api.libreoffice.org/docs/idl/ref/files.html
XRAY versteht diese Seite aber nicht, weil sie auf
doxygen basiert.
Es gibt noch ein Codeinspektionstool namens MRI. Das Problem ist, es wird für LibreOffice nicht mehr weiterentwickelt.
Noch schlimmer, mittlerweile schmiert mir LibreOffice bei Einsatz von MRI regelmäßig ab.
Es war mein Lieblingstool, kann ich aber nicht mehr weiterempfehlen
Jetzt ist es aber so, das sich AOO und LibreOffice immer mehr unterscheiden; Ist übrigens eines der Gründe warum MRI nicht mehr weiterentwickelt wird.
Das wirkt sich selbstverständlich auch auf die API aus.
So kann es passieren, dass Dein Code unter LibreOffice einwandfrei funktioniert, aber AOO streikt und umgekehrt.
Dazu gibt es aber keine Doku. Hier gilt nur "learning by testing"
Nun die SDK wird nur gebraucht, wenn Du selbst am Quellcode für Office arbeiten möchtest.
Bugs beseitigen, LibreOffice weiterentwickeln, etc.
Die Programme werden in JAVA/C++ geschrieben und im Anschluss kompiliert.
https://api.libreoffice.org/docs/install.html
PS
Ich gehe davon, dass XRAY auch unter LibreOffice irgendwann einmal nicht mehr richtig funktioniert.
Dann hilft im Augenblick nur noch das Arbeiten mit Haltepunkten und das Betrachten der Objektvariablen, etc. im Beobachter.
Dies ist sehr mühselig, zumal hier nur das nötigste angezeigt wird.
Die erwarteten Datentypen, usw. zu angezeigten Methoden, Eigenschaften usw. muss man dann in der API nachlesen.
Eine weitere, im Augenblick noch sehr rudimentäre Fnktion versteckt sich in den "experimentellen Einstellungen"
- Menü Extras → Optionen...
- LibreOffice → Erweitert
Experimentelle Funktionen aktivieren
- LO neustarten.
- Menü Extras → Optionen...
- LibreOffice → Basic-IDE
Informationen dazu siehe in der Hilffe
Suchbegriff:
Basic-IDE
Dann der Link:
Global
Basic-IDE -- Optionen
Hier unbedingt die Hinweise lesen
Insbesondere.
LO-Hilfe hat geschrieben:Die Verwendung von erweiterten Typen in Basic-Programmen kann die
Kompatibilität des Programms zu anderen Office-Paketen einschränken.