Seite 1 von 1

Zellinhalt in variable einlesen

Verfasst: So 2. Okt 2011, 00:01
von MaximilianWe
Eigentlich kann man die Frage gar nicht stellen. Aber man kann an ihr scheitern

Ich will aus einer Zelle x deren Wert in eine Variable übernehmen.
Z.B. Zelle B2 hat den Inhalt 5. Diesen >Wert möchte ich (nackt, ohne Formel) in eine variable n übernehmen.
Das ganze soll in einer while-Schleife für aufeinanderfolgende Zellen geschehen.

Z.B.
sub main

dim von as string
i=5
while i > 10
von= "B" & i
wert= lesen( von)
....
i=i+1
wend
end sub

Function lesen(pos as string) as integer
document = ThisComponent.CurrentController.Frame
ozelle= ThisComponent.sheets(0).getCellRangeByName(pos)

lesen= ozelle.value
end Funktion

Re: Zellinhalt in variable einlesen

Verfasst: So 2. Okt 2011, 00:32
von MaximilianWe
in Anbetracht der nächtlichen Stunde habe ich was wichtiges vergessen.
Die genannte Funktion lies 1 mal tatsächlich aus der angegebenen Zelle, allerdings einen anderen Wert. Beim zweiten Durchlauf erscheint " Funktion gilt nicht für Mehrfachselektion".
Der von der Zahl ihn der Zelle abweeichende Wert liegt wahrscheinlich daran, dass der Wert in dieser Zelle das Ergebnis eines Makros ist. ( Auch beim Kopieren ergibt der kopierte Wert keinen Sinn, außer ich kopiere ihn mit "Inhalte kopieren" ohne Formel.
Gwenau geht es also darum:
1. Eine Lösung, die auch bei mehrfachem Aufruf aus der Schleife stabil ist
2. Kann man beim Einlesen des Zellinhalts in eine Variable wie bei "Inhalte einfügen" die Formel ausblenden?

Ich komme halt von der C-Programmierung und habe noch ganz schön Lücken beim Basic.

Max

Re: Zellinhalt in variable einlesen

Verfasst: So 2. Okt 2011, 09:54
von komma4
MaximilianWe hat geschrieben:in Anbetracht der nächtlichen Stunde
a) Deine main liesst gar nichts, weil die Schleifen-Bedingung nicht erfüllt ist (korrekt: while i < 10)
b) schon bei dem ersten Ausführen die Fehlermeldung die Fehlermeldung: Unerwartetes Symbol: Funktion kommt

Ansonsten ist der Zugriff auf .value korrekt - liefert den Wert der Zelle und nicht die Formel. Und sie ist "stabil", läuft auch mehrfach mit gleichem Ergebnis.

Verwende die Hilfsmittel XRAY und/oder MRI - das hilft ungemein.


Und kopiere Deinen Code bei Fragen (schreibe ihn nicht ab) ;)