Am 29.06.2020 um 09:54 schrieb Jörg Schmidt:
> Hallo, 
> 
>> -----Original Message-----
>> From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] 
>> Sent: Monday, June 29, 2020 8:34 AM
>> To: users-de@openoffice.apache.org
>> Subject: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
>> 
>> Hi, 
>> 
>> ich hab da gerade ein kleines Verständnisproblem. Eigentlich möchte
>> ich (in einer Schleife) die Anweisung
>> 
>> | aOutput(currRow)(currCol) = Options2String (aMatrix 
>> (currRow, currCol, 
>> SDNumbers))
>> 
>> ausführen. Die einzelnen Variablen sind folgendermaßen definiert 
>> (und nachweislich auch sinnvoll belegt):
>> 
>> | Dim aMatrix (0 To 9, 0 To 9, 0 To 5) As Integer
>> | Dim currRow, currCol As Integer
>> | Dim aOutput As Variant
>> | Dim oSheet, oOutput As Object
>> | oSheet = thisComponent.getCurrentController.getActiveSheet
>> | oOutput = oSheet.getCellRangeByName (WMOutput)
>> | aOutput = oOutput.getDataArray()
>> 
>> Das Beobachterfenster zeigt mir aMatrix als 'Integer(0 To 9, 
>> 0 To 9, 0 To 5)',
>> wie es sein soll, und aOutput als 'Object(0 To 9)'; etwas merkwürdig,
>> weil eigentlich definiert als Variant, aber ist auch an 
>> anderen Stellen so
>> (und fonktioniert dort auch).
> 
> Variant gilt als Dateityp der alle anderen Typen enthält[1]. Eine als Variant 
> deklarierte Variable wird den Typ annehmen der dem Inhalt entspricht der ihr 
> zugewiesen wird, z.B.:

Jein; das Beobachterfenster wird bei Variant als Typ normalerweise
"Variant/Integer" oder "Variant/String" usw. angeben; bei Objekten
scheint es aber nicht "Variant/Object" sondern /nur/ "Object" an zu geben.

> Dim x As Variant
> x = "abc"
> MsgBox TypeName(x) 'String
> x = 1.23
> MsgBox TypeName(x) 'Double
> 
> [1]
> das ist eine Besonderheit und nicht selbstredend so, denn obwohl z.B. eine 
> Long-Variable als erweiterte Integer-Variable verstanden werden könnte, 

Nein; Long ist ein *eigenständiger* Datentyp, so wie String, oder Double
usw.

>> Bereits beim ersten Durchgang liefert mir die obige Zeile [...]
> 
> bitte gib den vollständigen Code an, denn zumindest ich blicke nicht durch

Da steht zu viel hierfür irrelevantes dazwischen; ich hab jedenfalls auf
der betreffenden Zeile die Variablen alle überprüft, die sind in Ordnumg.

Und was ich da angegeben habe, *ist* der relevante Code. Im Prinzip
handelt es sich, wie dargestellt, um eine reine Umkopieraktion.
Weggelassen hab ich lediglich die verschiedenen FOR-Schleifen und
Fallabfragen drum rum, denn die geben nun wirklich keine weiteren
Hinweise. Intern wird nur mit Integer gerechnet, ausgegeben werden diese
Integer-Werte teilweise direkt, teilweise als String aufbereitet (hier
Darstellung in Form von Bitmustern). Aber auch diese Konvertierung
selbst ist nicht entscheidend. Einzig die Zuweisung selbst, egal mit
welchem Typ (bis auf einen), macht irgendwie Probleme. Das hab ich ja
über die Variablen i1-i5 durchgeprüft.

Wolfgang
-- 
Donald Trump ist ein großer Visionär, der seiner Zeit weit voraus ist:
Er verbreitet schon jetzt den Slogan "make America great again", obwohl
dieser erst in der Ära /nach/ ihm seine volle Bedeutung entfalten wird.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org

Antwort per Email an