BASIC Funktions-Makro in Calc lädt nicht neu

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

tincup
Beiträge: 2
Registriert: Sa, 20.02.2010 20:47

BASIC Funktions-Makro in Calc lädt nicht neu

Beitrag von tincup »

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
Karolus
********
Beiträge: 7519
Registriert: Mo, 02.01.2006 19:48

Re: BASIC Funktions-Makro in Calc lädt nicht neu

Beitrag von Karolus »

Hallo
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)
tincup
Beiträge: 2
Registriert: Sa, 20.02.2010 20:47

Re: BASIC Funktions-Makro in Calc lädt nicht neu

Beitrag von tincup »

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.

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
Karolus
********
Beiträge: 7519
Registriert: Mo, 02.01.2006 19:48

Re: BASIC Funktions-Makro in Calc lädt nicht neu

Beitrag von Karolus »

Hallo
Ä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
...
in Calc ist die Syntax dann :
=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)
Antworten