Hi Leute.
Hab eine Funktions-Makro für Calc in BASIC geschrieben (d.h. ich schreibe es in eine Zelle mit =FUNKTIONSNAME rein).
Das Makro habe ich direkt mit dem Sheet File assoziiert.
Funktioniert auch alles gut, nur wenn ich das Dokument neu lade, steht an allen Stellen, wo das Makro verwendet wurde, nur noch "#NAME?". Updaten der Zellen usw. bringt auch nichts. Erst wenn ich den Code 1x aufmache (ohne etwas zu ändern) funktioniert es wieder. Allerdings auch nur wenn ich die Zellen einzeln anklicke und update.
Kann mir das jemand erklären? Was mache ich falsch?
Tin
BASIC Funktions-Makro in Calc lädt nicht neu
Moderator: Moderatoren
Re: BASIC Funktions-Makro in Calc lädt nicht neu
Hallo
Greifst du im Funktionscode auf Objecte des zu öffnenden Dokuments zu ?
Zeig mal deine Function.
Gruß Karo
Greifst du im Funktionscode auf Objecte des zu öffnenden Dokuments zu ?
Zeig mal deine Function.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: BASIC Funktions-Makro in Calc lädt nicht neu
Hi. Ja greife ich. Die entsprechenden Zellen bekommen ROW(), COLUNN() und noch einen weiteren Wert übergeben und greifen auf die Zelle links neben sich zu.
Hier eine verkürzte Version der Funktion.
Hier eine verkürzte Version der Funktion.
Code: Alles auswählen
function getAtts(curRow as Integer, curCol as Integer, attOff as Integer)
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Dim strAtt as String
strAtt=Sheet.getCellByPosition(curCol-2, curRow-1).getString
Dim result as String
'
' Hier wird jetzt strAtt verarbeitet und 'result' produziert
'
getAtts=result
end function
Re: BASIC Funktions-Makro in Calc lädt nicht neu
Hallo
Ändere doch mal den Functions-kopf um in:
in Calc ist die Syntax dann :
=GETATTS( zelladresse_links_daneben_wie_üblich ;attoff)
Gruß Karo
Ändere doch mal den Functions-kopf um in:
Code: Alles auswählen
function getAtts( zelladresse as string , attOff as Integer)
strAtt = zelladresse
dim result as string
...
=GETATTS( zelladresse_links_daneben_wie_üblich ;attoff)
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)