Laufzeitfehler beim Öffnen
Moderator: Moderatoren
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Laufzeitfehler beim Öffnen
Ich habe ein relativ einfache Makros mit Excel geschrieben. Wenn ich es mit LibreOffice öffne und als ods abspeichere und dann wieder öffne, kommt die folgende Meldung hoch:
BASIC-Laufzeitfehler.
'91'
Objektvariable nicht belegt.
Es gibt keine weitere Information bzgl. des Problems. Wenn ich die Meldung wegklicke funktionieren die Makros normal. Ich habe geschaut und keine Variable gefunden, die nicht verwendet wird.
Bei LibreOffice will ich keine Einstellungen verändern, da die Datei auch von anderen Personen geöffnet werden darf.
BASIC-Laufzeitfehler.
'91'
Objektvariable nicht belegt.
Es gibt keine weitere Information bzgl. des Problems. Wenn ich die Meldung wegklicke funktionieren die Makros normal. Ich habe geschaut und keine Variable gefunden, die nicht verwendet wird.
Bei LibreOffice will ich keine Einstellungen verändern, da die Datei auch von anderen Personen geöffnet werden darf.
Re: Laufzeitfehler beim Öffnen
Hallo,
kommt da noch ein Frage?
Grundsätzlich können Excel-Makros (in VBA) unter Calc funktionieren, aber sicher ist das nicht.
Die Meldung "Objektvariable nicht belegt" heißt nicht, das eine Variable nicht verwendet wird, sondern, dass diese Variable nicht mit einem (dem gwünschten ) Objekt belegt ist. Das würde allerdings bedeuten, dass das MAkro noicht
Für weiteres wäre es sinnvoll, das Makro hier mal vorzustellen.
kommt da noch ein Frage?
Grundsätzlich können Excel-Makros (in VBA) unter Calc funktionieren, aber sicher ist das nicht.
Die Meldung "Objektvariable nicht belegt" heißt nicht, das eine Variable nicht verwendet wird, sondern, dass diese Variable nicht mit einem (dem gwünschten ) Objekt belegt ist. Das würde allerdings bedeuten, dass das MAkro noicht
Für weiteres wäre es sinnvoll, das Makro hier mal vorzustellen.
Gruß,
mikeleb
mikeleb
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Laufzeitfehler beim Öffnen
Ich konnte den Code eindampfen:
Function meineFunktion(parameter) As Integer
If TypeOf parameter Is Range Then
' parameter = parameter.Value
End If
meineFunktion = 42
End Function
Wenn ich die Funktion mit einem Range-Object aufrufe, funktioniert er. Bei einer Zahl aber nicht.
Function meineFunktion(parameter) As Integer
If TypeOf parameter Is Range Then
' parameter = parameter.Value
End If
meineFunktion = 42
End Function
Wenn ich die Funktion mit einem Range-Object aufrufe, funktioniert er. Bei einer Zahl aber nicht.
Re: Laufzeitfehler beim Öffnen
Hallo,
der Knackpunkt ist die Zeile
Die Variable parameter stellt zunächst ein object dar. Nun versuchst du die Variable neu als Zahl festzulegen. Das geht schief.
Daher muss es umprogrammiert werden.
Was willst du mit deiner Funktion erreichen? Es könnte auch einfacher sein, uns das ganze Makro zu zeigen.
der Knackpunkt ist die Zeile
Code: Alles auswählen
parameter = parameter.Value
Daher muss es umprogrammiert werden.
Was willst du mit deiner Funktion erreichen? Es könnte auch einfacher sein, uns das ganze Makro zu zeigen.
Gruß,
mikeleb
mikeleb
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Laufzeitfehler beim Öffnen
Die Zeile
' parameter = parameter.Value
ist eigentlich auskommentiert.
Ich will, dass man die Funktion sowohl mit einer Zahl oder mit der Angabe einer Zelle funktioniert. Es soll sowohl für Excel als auch für LibreOffice funktionieren.
' parameter = parameter.Value
ist eigentlich auskommentiert.
Ich will, dass man die Funktion sowohl mit einer Zahl oder mit der Angabe einer Zelle funktioniert. Es soll sowohl für Excel als auch für LibreOffice funktionieren.
Re: Laufzeitfehler beim Öffnen
Hallo,
Mit anstelle von bin ich aber schon mal weiter gekommen.
Das wird grundsätzlich schwierig, da bei jedem Öffnen/Schließen die Datei in die verschiednenen Formate konvertiert werden wird.Es soll sowohl für Excel als auch für LibreOffice funktionieren.
Mit
Code: Alles auswählen
if vartype(parameter)=9 then
Code: Alles auswählen
If TypeOf parameter Is Range Then
Gruß,
mikeleb
mikeleb
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Laufzeitfehler beim Öffnen
Das mit verschieden Formaten ist zwar hässlich aber das kann ich noch verkaufen.
Ich konnte die if-Abfrage
if typename(parameter)="Range" then
verwenden.
Jetzt knallt es aber mit
if vartype(parameter)=9 then
' msgbox(typename(parameter))
dim tmp as integer
tmp = parameter.Value2
End Ifnem
Obwohl es sich dabei um einen Double Wert handelt. Ich habe vor der if-Abfrage eine msgBox eingebaut, die aber nicht aufgerufen wird. Sieht also nicht so recht nach einem Laufzeitfehler aus.
Ich konnte die if-Abfrage
if typename(parameter)="Range" then
verwenden.
Jetzt knallt es aber mit
if vartype(parameter)=9 then
' msgbox(typename(parameter))
dim tmp as integer
tmp = parameter.Value2
End Ifnem
Obwohl es sich dabei um einen Double Wert handelt. Ich habe vor der if-Abfrage eine msgBox eingebaut, die aber nicht aufgerufen wird. Sieht also nicht so recht nach einem Laufzeitfehler aus.
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Laufzeitfehler beim Öffnen
PS: auch mit
tmp = parameter.Value
funktioniert es nicht.
tmp = parameter.Value
funktioniert es nicht.
Re: Laufzeitfehler beim Öffnen
Hallo,
ich vermute mal, dass es damit zusammenhängt, dass in StarBasic die Argumente als Referenz übergeben werden. Wie das in VBA war, weiß ich gerade nicht mehr.
In der Form lässt sich die Funktion sowohl mit einem Objekt als auch einer Zahl aufrufen.
Um die ganze Problematik zu umgehen, würde ich die Unterscheidung zwischen Wert bzw. Objekt vor dem Aufruf der Funktion erledigen.
ich vermute mal, dass es damit zusammenhängt, dass in StarBasic die Argumente als Referenz übergeben werden. Wie das in VBA war, weiß ich gerade nicht mehr.
In der Form lässt sich die Funktion sowohl mit einem Objekt als auch einer Zahl aufrufen.
Code: Alles auswählen
function meinefkt(parameter) as integer
test=parameter
if vartype(parameter)=9 then
wert=test.value
end if
meinefkt=42
end function
Gruß,
mikeleb
mikeleb
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Laufzeitfehler beim Öffnen
Danke, da wäre ich nie drauf gekommen.