Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
Am 29.06.2020 um 16:59 schrieb Wolfgang Jäth: Ich hab jetzt die Funktion mal vollständig gelöscht, und nochmal komplett neu aufgebaut; irgendwie muss ich ja mal weiter kommen. Und siehe da, sie funktioniert einwandfrei ... :-/ Wolfgang, der aber trotzdem wissen möchte, was das los war -- 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
RE: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
> -Original Message- > From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] > Sent: Monday, June 29, 2020 4:59 PM > To: users-de@openoffice.apache.org > Subject: Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt" > > Am 29.06.2020 um 13:38 schrieb Jörg Schmidt: > >> Und was ich da angegeben habe, *ist* der relevante Code. > > > > Tut mir leid, aber das kann nicht stimmen, weil z.B. > Schleifen fehlen, Variablen-Inhalte fehlen (z.B. kann niemand > errarten was der Inhalt von "WMOutput" ist /wenn es eine > Variable ist, ist kein Inhalt angegeben, wenn es der Name > eines benannten Bereiches wäre, fehlen die "") und weil es > auch nicht stimmen kann das: "Aber gut, kleiner Test, direkt > davor folgende Zeilen eingefügt:", denn das hiesse ja der > Inhalt für aMatrix würde zugewiesen bevor aMatrix deklariert wird. > > AMatrix wird in anderen Funktionen zusammengestellt und soll hier > ausgegeben werden. Aber wenn du mir nicht glaubst, dass der > Code "drum herum" > dir nicht weiter helfen wird, Warum sollte ich das nicht glauben, ss ging darum das der Code nicht vollständig wsr, was auch Bernd aufgefallen war. nun zum Code: im ersten Post schreibst Du: "Bereits beim ersten Durchgang liefert mir die obige Zeile aber den Basic-Laufzeitfehler "Objektvariable nicht belegt". Dürfte eigentlich nicht sein, die *sind* alle belegt; definitiv." und ich bekomme diesen Fehler ebenfalls. Allerdings ist das beim jetzt von Dir übermittelten Code auch erklärlich: oOutput = oSheet.getCellRangeByName (WMOutput) aOutput = oRange.getDataArray() denn dort ist oRange ohne Inhalt. In Deinem ersten Post wurde im Code hingegen auf oOutput Bezug genommen: oOutput = oSheet.getCellRangeByName (WMOutput) aOutput = oOutput.getDataArray() Vielleicht liegt also nur ein Flüchtigkeitsfehler vor (oRange statt oOutput), der Dir nicht ins Auge fiel? Gruß Jörg - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
Am 29.06.2020 um 11:37 schrieb Bernd Obermayr: > Am 29.06.20 um 08:34 schrieb Wolfgang Jäth: >> | oOutput = oSheet.getCellRangeByName (WMOutput) > Hi, > ist WMOutput eine Variable oder Konstante? Letzters, ja. > Wenn das ein Bereichsname ist müsste der doch quotiert sein oder? > > oOutput = oSheet.getCellRangeByName ("WMOutput") Nein, es handelt sich um eine Stringkonstante ("K1:S9"). 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
Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
Am 29.06.2020 um 13:38 schrieb Jörg Schmidt: >> Und was ich da angegeben habe, *ist* der relevante Code. > > Tut mir leid, aber das kann nicht stimmen, weil z.B. Schleifen fehlen, > Variablen-Inhalte fehlen (z.B. kann niemand errarten was der Inhalt von > "WMOutput" ist /wenn es eine Variable ist, ist kein Inhalt angegeben, wenn es > der Name eines benannten Bereiches wäre, fehlen die "") und weil es auch > nicht stimmen kann das: "Aber gut, kleiner Test, direkt davor folgende Zeilen > eingefügt:", denn das hiesse ja der Inhalt für aMatrix würde zugewiesen bevor > aMatrix deklariert wird. AMatrix wird in anderen Funktionen zusammengestellt und soll hier ausgegeben werden. Aber wenn du mir nicht glaubst, dass der Code "drum herum" dir nicht weiter helfen wird, bitte (inklusive dem notwendigsten *zu* dem "drum rum"; wie ich schon schrub, steht /viel/ irrelevantes dazwischen): Const SDValueMin As Integer = 1 Const SDValueMax As Integer = 9 Const SDVCheckMin As Integer = 0 Const SDVCheckMax As Integer = 15 Const SDDataMin As Integer = 0 Const SDDataMax As Integer = 5 Const SDMatrix As Integer = 1 Const SDRanges As Integer = 2 Const SDScopes As Integer = 3 Const SDValue As Integer = 4 Const SDNumbers As Integer = 5 Const SDMaxLoops As Integer = 9 ' : : : ' : : : Const SDLog As String = "X1" Const IsLog As Integer = 1 Dim sLogFile As String Sub Calculate '== Dim myData (SDMatrix To SDScopes) As Variant Dim currLoop, myAlterations As Integer Clear ShowStep ("0.InitRanges") myData (SDRanges) = InitRanges ShowStep ("0.InitScopes") myData (SDScopes) = InitScopes ShowStep ("0.ReadMatrix") myData (SDMatrix) = ReadMatrix ShowStep ("0.Numbers") CheckNumbers (myData) sLogFile = "" currLoop = SDMaxLoops Do currLoop = currLoop - 1 ShowStep (SDMaxLoops-currLoop & ".Singles") myAlterations = CheckSingles (myData) ShowStep (SDMaxLoops-currLoop & ".Triples") myAlterations = myAlterations + CheckTriplets (myData) ShowStep (SDMaxLoops-currLoop & ".Options") myAlterations = myAlterations + CheckOptions (myData) ShowStep (SDMaxLoops-currLoop & ".UpsideDown") myAlterations = myAlterations + CheckUpsides (myData) Loop Until (myAlterations <= 0) OR (currLoop <= 0) Verify (myData) WriteMatrix (myData (SDMatrix)) End Sub Sub WriteMatrix (aMatrix As Variant) Const WMOutput As String = "K1:S9" Const WMCheckpoints As String = "AA1:AP9" Dim currRow, currCol, myDigits As Integer Dim aOutput, myValue As Variant Dim oSheet, oOutput As Object oSheet = thisComponent.getCurrentController.getActiveSheet If IsLog >= 1 Then oSheet.getCellRangeByName (SDLog).String = sLogFile End If oOutput = oSheet.getCellRangeByName (WMOutput) aOutput = oRange.getDataArray() For currRow = SDValueMin To SDValueMax For currCol = SDValueMin To SDValueMax myValue = aMatrix (currRow, currCol, SDValue) If myValue > 0 Then aOutput (currRow)(currCol) = myValue Else myDigits = CountBits (aMatrix (currRow, currCol, SDNumbers)) Select Case myDigits Case 1 aOutput (currRow)(currCol) = Options2Bits (aMatrix (currRow, currCol, SDNumbers)) Case 2 To 6 aOutput (currRow)(currCol) = Options2String (aMatrix (currRow, currCol, SDNumbers), 6) Case Else aOutput (currRow)(currCol) = Options2String (aMatrix (currRow, currCol, SDNumbers), 11) End Select End If Next For currCol = SDVCheckMin To SDVCheckMax ' : : : ' : : : Next Next oOutput.setDataArray (aOutput) End Sub Function ReadMatrix As Variant Const RMInput As String = "A1:I9" Dim currRow, currCol As Integer Dim aMatrix (SDValueMin To SDValueMax, SDValueMin To SDValueMax, SDDataMin To SDDataMax) As Integer Dim aInput, myValue As Variant Dim oSheet, oInput As Object oSheet = thisComponent.getCurrentController.getActiveSheet oInput = oSheet.getCellRangeByName (RMInput) aInput = oInput.getDataArray() ' : : : ' :
Re: Automatiks
Hallo Olaf Dietrich, dies ist eine deutschsprachige Mailingliste! ;-) Im Menü "Extras" Autokorrektur-Optionen". Dort der Reiter "Optionen". Hoffe, es ist bei einem Mac ebenso, aber das wird der weg zur Lösung sein. -- Viel Erfolg Detlef Nannen Am 29.06.2020 um 14:57 schrieb Olaf Dietrich: Hello! How can i stop the program me to do automatic things. I´m working on a novel and it´s driving me mad. No Automatiks please. I keep on doing cmd/ Z all the time….. thanx - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
Automatiks
Hello! How can i stop the program me to do automatic things. I´m working on a novel and it´s driving me mad. No Automatiks please. I keep on doing cmd/ Z all the time….. thanx - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
Announcing ApacheCon @Home 2020
Hi, Apache enthusiast! (You’re receiving this because you’re subscribed to one or more dev or user mailing lists for an Apache Software Foundation project.) The ApacheCon Planners and the Apache Software Foundation are pleased to announce that ApacheCon @Home will be held online, September 29th through October 1st, 2020. We’ll be featuring content from dozens of our projects, as well as content about community, how Apache works, business models around Apache software, the legal aspects of open source, and many other topics. Full details about the event, and registration, is available at https://apachecon.com/acah2020 Due to the confusion around how and where this event was going to be held, and in order to open up to presenters from around the world who may previously have been unable or unwilling to travel, we’ve reopened the Call For Presentations until July 13th. Submit your talks today at https://acna2020.jamhosted.net/ We hope to see you at the event! Rich Bowen, VP Conferences, The Apache Software Foundation - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
RE: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
> -Original Message- > From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] > Sent: Monday, June 29, 2020 11:24 AM > To: users-de@openoffice.apache.org > Subject: Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt" > > 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; doch > Long ist ein *eigenständiger* Datentyp, so wie String, > oder Double > usw. Eben, darum geht es. > > >> 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. Tut mir leid, aber das kann nicht stimmen, weil z.B. Schleifen fehlen, Variablen-Inhalte fehlen (z.B. kann niemand errarten was der Inhalt von "WMOutput" ist /wenn es eine Variable ist, ist kein Inhalt angegeben, wenn es der Name eines benannten Bereiches wäre, fehlen die "") und weil es auch nicht stimmen kann das: "Aber gut, kleiner Test, direkt davor folgende Zeilen eingefügt:", denn das hiesse ja der Inhalt für aMatrix würde zugewiesen bevor aMatrix deklariert wird. Aber ich will das nicht vertiefebn. Ich wollte helfen und stellte dazu die selbstverständliche Frage nach vollständigem Code, wenn das nicht geht, geht es eben nicht. Gruß Jörg - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
Am 29.06.20 um 08:34 schrieb Wolfgang Jäth: > | oOutput = oSheet.getCellRangeByName (WMOutput) Hi, ist WMOutput eine Variable oder Konstante? Wenn das ein Bereichsname ist müsste der doch quotiert sein oder? oOutput = oSheet.getCellRangeByName ("WMOutput") -- Gruss Bernd - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
Re: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
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
RE: [Basic] Laufzeitfehler "Objektvariable nicht belegt"
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.: 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, "enthält" eine Long-Variable nicht _den Typ_ Integer, Schaue Dir das untereschiedliche Verhalten an: Dim x As Variant x = 123 MsgBox TypeName(x) 'Integer Dim y As Long y = 123 MsgBox TypeName(y) 'Long! > Bereits beim ersten Durchgang liefert mir die obige Zeile [...] bitte gib den vollständigen Code an, denn zumindest ich blicke nicht durch Gruß Jörg - To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org
[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). Bereits beim ersten Durchgang liefert mir die obige Zeile aber den Basic-Laufzeitfehler "Objektvariable nicht belegt". Dürfte eigentlich nicht sein, die *sind* alle belegt; definitiv. Aber gut, kleiner Test, direkt davor folgende Zeilen eingefügt: | Dim i1, i2, i3, i4, i5 as Variant | i1 = aMatrix (currRow, currCol, SDNumbers) | i2 = Options2String (aMatrix (currRow, currCol)) | i3 = aOutput(currRow) | i4 = i3(currCol) | i5 = aOutput(currRow-1)(currCol-1) | aOutput(currRow)(currCol) = i1 | aOutput(currRow)(currCol) = i2 | aOutput(currRow)(currCol) = i3 | aOutput(currRow)(currCol) = i4 | aOutput(currRow)(currCol) = i5 Das liefert für - i1 den Typ Variant/Integer (soll auch sein) - i2 den Typ Variant/String ( -"- ) - i3 den Typ Variant(0 To 8) ( -"- ) - i4 den Typ Variant/String ( -"- ) - i5 den Typ Variant/String ( -"- ) - alle "aOutput()() = ..." - außer bei "= i3" - den Laufzeitfehler "Objektvariable nicht belegt" Hä? Ich kann das Element auslesen (Beweis: i4, i5), aber nicht beschreiben (bzw. nur mit einem Array)ßßßscharfesSscharfesSscharfesS Sogar | aOutput(currRow)(currCol) = 5 | aOutput(currRow)(currCol) = "sdf" liefern beide den gleichen Fehler. Interssanterweise liefert jedoch | aOutput(currRow)(currCol) = aMatrix (currRow, currCol, SDValue) den Fehler "Falsche Verwendung für ein Objekt". Und das alles vor dem Hintergrund, dass an anderen Stellen z. B. folgender Code durchaus einwandfrei funktioniert (dewegen hab ich ihn ja schließlich von dort her kopiert): | Dim currRow, currCol As Integer | Dim aCellRange As Variant | Dim oSheet, oRange As Object | oSheet = thisComponent.getCurrentController.getActiveSheet | oRange = oSheet.getCellRangeByName (TSIRange) | aCellRange = oRange.getDataArray() | : | aCellRange (currRow)(currCol) = Options2List (aPlainRange (currCol, currRow), true) Also eigentlichgenau das gleiche; auch da wird übrigens aCellRange als 'Object(...)' angegeben. Spinn jetzt *ich*, oder das /Programm/? Oder hab ich Tomaten auf den Augen, und seh irgend etwas entscheidendes nicht? Wolfgang, momentan ratlos -- 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