Objektvariable nicht belegt

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

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Objektvariable nicht belegt

Beitrag von komma4 »

Die Funktionsnamen müssen ENGLISCH geschrieben werden, die Parameter als ARRAY() übergeben werden

Hilft Dir das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Objektvariable nicht belegt

Beitrag von komma4 »

Wäre mir neu, dass die Funktionsnamen lokalisiert wurden (3.0.1 hier).

Die Parameter einer Funktion als ARRAY, bspw. beim ERSETZEN(suchbegriff, ab, wieviel, ersatzbegriff) [4 Parameter]

Code: Alles auswählen

aResult=FuncAcc.callFunction("REPLACE", Array( oCell.String , 1,3,"ZZZ" ))

Hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Objektvariable nicht belegt

Beitrag von komma4 »

SEARCH braucht min. 2 Parameter, Dein zweiter ist ein Zellobjekt und nicht die zu durchsuchende Zeichenkette.


Was möchtest Du mit Deinem Code erreichen? Jeweils einen Teil aus drei Zellen entnehmen und zusammensetzen?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
John.Mops
*
Beiträge: 14
Registriert: Mi, 25.03.2009 10:31

Re: Objektvariable nicht belegt

Beitrag von John.Mops »

meist kommt es auf jedes Zeichen an... :D
=SEARCH("Autor:",AH4) klappt bei mir z.B. gar nicht in einer Zelle
=SUCHEN("Autor:";AH4) schon -
auch ist natürlich eine Funktion in eine Zelle nicht ganz das gleiche wie eine Funktion in einer Funktion in einem Makro aufzurufen, da
z.B. String-Delimiter mal automatisch eingefügt (eine Vereinfachung für den Benutzer sozusagen) aber in einem Programm nicht automatisch
verdoppelt werden können.
Zu beachten ist auch das wenn ich in eine Zelle 'was eintippe bewege ich mich in einem Worksheet - das gleiche in einem Makro ist da 'was anderes -
welche AH4 von welchem Sheet ist denn da z.B. gemeint? - die Makro-Ebene greift halt auf alle zu.
thx!
OO3.1/MySql-Connector/Linux 2.6.30/SuSE/(nur bis)XP John.M
Karolus
********
Beiträge: 7518
Registriert: Mo, 02.01.2006 19:48

Re: Objektvariable nicht belegt

Beitrag von Karolus »

Hallo
In folgender Form läuft deine Funktion:

Code: Alles auswählen

Function get_autor ( row as Variant ) As String
	'Variablen deklarieren
	Dim oFunktion as Object
	Dim dTeil1 as Double
	Dim dTeil2 as Double
   
oFunktion = createUnoService("com.sun.star.sheet.FunctionAccess")
	Dim args1( 1 ) As Variant
		args1(0) = "Autor: "
		args1(1) = row
dteil1 = oFunktion.callFunction( "SEARCH", args1() ) 
dTeil1 = dTeil1 + len("Autor: ")

'runtime-function 'instr' statt Calcfunktion 'search'
dTeil2 = instr ( dteil1, row, "<" )

'runtime 'mid' statt MID aus Calc
get_autor = mid( row, dTeil1, dTeil2-dteil1 )
  
End Function
der 2. Aufruf von SEARCH innerhalb der Funktion geht hier auch nicht, ich hab das durch die Laufzeitfunktion 'instr' ersetzt, dito MID -> mid.

(kleine Anmerkung: 'row' als Parameterbezeichner ist irreführend, 'sstring' oder 'Text' wäre besser.)

Gruß Karo
Zuletzt geändert von Karolus am Di, 23.06.2009 12:50, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten