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