Basic - eingebaute Funktion will nicht
Moderator: Moderatoren
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Basic - eingebaute Funktion will nicht
edit (Modaration: mikeleb): Thema von Calc nach Makros und allgemeine Programmierung verschoben
Ich versuche eine Excel-Datei zu LibreOffice zu migrieren.
Bei den folgenden Zeilen erscheint die Fehlermeldung "basic-Laufzeitfehler 449 Arguent ist nicht optional.
Dim myYear
myYear = Year(myDate)
Ich versuche eine Excel-Datei zu LibreOffice zu migrieren.
Bei den folgenden Zeilen erscheint die Fehlermeldung "basic-Laufzeitfehler 449 Arguent ist nicht optional.
Dim myYear
myYear = Year(myDate)
Re: Basic - eingebaute Funktion will nicht
Mir
Fällt jetzt nur auf das du offenbar die Fehlermeldung falsch abgetippt hast ( Hint: copy&paste existiert )
Mehr kann ich, trotz der überwältigenden Informationsmenge von deiner Seite, auch nicht erraten!
Fällt jetzt nur auf das du offenbar die Fehlermeldung falsch abgetippt hast ( Hint: copy&paste existiert )
Mehr kann ich, trotz der überwältigenden Informationsmenge von deiner Seite, auch nicht erraten!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Basic - eingebaute Funktion will nicht
Function osterSonntag(myDate As Long) As Long
Dim myYear
myYear = Year(myDate)
Dim tmp As Long
If Minute(myYear / 38) / 2 + 55 < 60 Then
tmp = 1
Else
tmp = 0
End If
osterSonntag = _
WorksheetFunction.Round((CDate(Day(Minute(myYear / 38) / 2 + 55) + _
tmp & ".4." & myYear) / 7), 0) * 7 - 6
End Function
Fehlermeldung ist:
BASIC-Laufzeitfehler.
'449'
Argument ist nicht optional.
Dim myYear
myYear = Year(myDate)
Dim tmp As Long
If Minute(myYear / 38) / 2 + 55 < 60 Then
tmp = 1
Else
tmp = 0
End If
osterSonntag = _
WorksheetFunction.Round((CDate(Day(Minute(myYear / 38) / 2 + 55) + _
tmp & ".4." & myYear) / 7), 0) * 7 - 6
End Function
Fehlermeldung ist:
BASIC-Laufzeitfehler.
'449'
Argument ist nicht optional.
Re: Basic - eingebaute Funktion will nicht
Du hast Glück, die Funktion OSTERSONNTAG gibts bereits als Calc-funktion, du darfst daher das gute Stück UDF einfach löschen!
apropos UDFs testen:
apropos UDFs testen:
Was glaubst du woher die Funktion das Argument: myDate As Long hernimmt, wenn du sie einfach so direkt aus der Basic-IDE aufrufst?Function osterSonntag( myDate As Long ) As Long
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- *
- Beiträge: 11
- Registriert: Mi, 28.02.2024 23:10
Re: Basic - eingebaute Funktion will nicht
Irgendwie hat es sich beruhigt und es funktioniert. Mir geht es auch im das Prinzip. Ich habe nun versucht, in Basic die Funktion EASTERSUNDAY aufzurufen. Aber es kommt ein paar mal die Fehlermeldung
BASIC-Laufzeitfehler.
'35'
Prozedur Sub oder Function nicht definiert.
Zusätzliche Informationen: EASTERSUNDAY
Mit Shift-F8 kommt dann die Fehlermeldung
BASIC-Laufzeitfehler.
'449'
Argument ist nicht optional
BASIC-Laufzeitfehler.
'35'
Prozedur Sub oder Function nicht definiert.
Zusätzliche Informationen: EASTERSUNDAY
Mit Shift-F8 kommt dann die Fehlermeldung
BASIC-Laufzeitfehler.
'449'
Argument ist nicht optional
Re: Basic - eingebaute Funktion will nicht
Im Prinzip sind die Welten getrennt, d.h. BASIC weiss nicht, dass es eine Funktion EASTERSUNDAY in Calc gibt. Das muss man erst bekanntgeben.Neandertaler hat geschrieben: Do, 29.02.2024 14:42 .... Mir geht es auch im das Prinzip. Ich habe nun versucht, in Basic die Funktion EASTERSUNDAY aufzurufen. ...
Vgl:
https://forum.openoffice.org/en/forum/v ... p?t=110081
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Re: Basic - eingebaute Funktion will nicht
Hallo,
wenn ich in einer Calc-Datei die folgende Funktion als Makro anlege:
dann funktioniert der Aufruf zum Beispiel per
einfacher wäre es natürlich der Funktion nur das Jahr zu übergeben. Die integrierte Funktion OSTERSONNTAG() erledigt das Problem ja sowieso.
wenn ich in einer Calc-Datei die folgende Funktion als Makro anlege:
Code: Alles auswählen
Function eastersunday(myDate As Long) 'As Long
Dim myYear
myYear = Year(myDate)
eastersunday =int(cdate(( Minute(myYear / 38) / 2 + 55 < 60)+Day(Minute(myYear / 38) / 2 + 55) & ".4." & myYear)/7+.5)*7-6
End Function
Code: Alles auswählen
=EASTERSUNDAY(DATUM(2024;1;1))
Gruß,
mikeleb
mikeleb