Seite 1 von 1
BASIC Laufzeit Fehler - Variable nicht belegt - (ab und zu)
Verfasst: So 30. Okt 2016, 12:04
von hchaieb
Libre Office 5.2.2.2
Makro in Basic
Code: Alles auswählen
public function Hintergrund_Aehnlich(RRef as Range,RT as Range) as integer
dim c1 as long
dim c2 as long
Hintergrund_Aehnlich=0
c1=RRef.CellRange.CellBackColor
c2=RT.CellRange.CellBackColor
if c1=c2 then Hintergrund_Aehnlich=1
end function
Beim Öffnen von Calc meldet LibreOffice Calc Laufzeit Fehler Variable nicht belegt für die Zeile:
Ich verwende die Funktion 365 mal. Ich klicke die Fehlermeldung 365 mal weg. Dann lösche ich das "e" von Range in
und schreibe die "e" wieder rein
Starte die Berechnung manuell und die Funktion arbeitet einwandfrei
Kennt jemanden eine Lösung für dieses Verhalten? was mache ich falsch?
Re: BASIC Laufzeit Fehler - Variable nicht belegt - (ab und zu)
Verfasst: So 30. Okt 2016, 14:20
von karolus
Hallo
Basic kennt kein `Range` -objekt, damit der Käse überhaupt funktioniert brauchts wohl im Modul eine erste Zeile:
und zusammengefasst:
Code: Alles auswählen
Option VBASupport 1
public function Hintergrund_Aehnlich(RRef as Range,RT as Range) as integer
dim c1 as long
dim c2 as long
c1=RRef.CellRange.CellBackColor
c2=RT.CellRange.CellBackColor
Hintergrund_Aehnlich = IIF(c1=c2,1,0)
end function
Re: BASIC Laufzeit Fehler - Variable nicht belegt - (ab und zu)
Verfasst: So 30. Okt 2016, 15:10
von hchaieb
Vielen Dank Karolus, deine Lösung hat mein Problem gelöst.
Ich kannte die "Option VBASupport 1" nicht.
eine Frage habe ich noch:
Was wäre die alternative mit Libre Office Objekte gewesen. Ich habe "Range" durch "Variant" und ohne Objektbezeichnung ausprobiert gehabt. Trotzdem ging nichts.
Besten Dank
Re: BASIC Laufzeit Fehler - Variable nicht belegt - (ab und zu)
Verfasst: So 30. Okt 2016, 15:50
von karolus
Hallo
Es gibt keine Alternative in Basic, mit dem
Aufruf aus Calc =meineFunktion(A1) ohne Anführungszeichen um A1 übergibst du Basic nur den Wert|Text aus der Zelle A1, nicht aber das vollständige Objekt mit allen Attributen wie u.a.
.CellBackColor
Wenn du das vollständige Objekt auswerten möchtest, musst du bspw. den Namen der Zelle als Text übergeben:
=meineFunktion("A1")
und dich in Basic durchhangeln zum Zellobject via …sheet.getCellRangeByName( arg )
Ich kannte die "Option VBASupport 1" nicht.
Dann verstehe ich aber nicht wie du vorher angeblich sinnvolle Ergebnisse bekamst.
Ach ja, die
echte Alternative ist dann ein richtige CalcAddInn in einer vernünftigen Programmiersprache
http://www.openoffice.org/api/docs/comm ... AddIn.html
http://www.biochemfusion.com/doc/Calc_addin_howto.html
https://forum.openoffice.org/en/forum/v ... 21&t=56916
http://de.openoffice.info/viewtopic.php?f=25&t=60394
Re: BASIC Laufzeit Fehler - Variable nicht belegt - (ab und zu)
Verfasst: So 30. Okt 2016, 17:48
von hchaieb
Danke! hervorragend erklärt
karolus hat geschrieben:
Dann verstehe ich aber nicht wie du vorher angeblich sinnvolle Ergebnisse bekamst.
Beim Öffnen der Datei hatte ich nur Fehlermeldung. Die Funktion wurde deaktiviert. Jedoch nach dem neu berechnen der mit str+shift+F9 die Function hat das gewünschte ergebnis geliefert gehabt. Weshalb bleibt mir ebenfals ein Rätsel
Viele Grüße
Re: BASIC Laufzeit Fehler - Variable nicht belegt - (ab und zu)
Verfasst: So 30. Okt 2016, 18:09
von karolus
Hallo
Bei meinen Versuchen gabs nach dem wegdrücken der Fehlermeldungen und Neuberechnung nur falsche 0en als Ergebnis.