VBA Script - Wochentag als Name?

MichaelH.

Banned
Registriert
Mai 2012
Beiträge
1.495
Die Funktion "weekday(Datum)" bringt mir ja eine Zahl von 1 bis 7 für den aktuellen Wochentag.

Diese Zahl müsste ich ja erst umständlich weiterverarbeiten, wenn ich daraus "Mo, Di, Mi, Do, ..." machen möchte.

Gibts den eine Funktion, die mir statt einer Zahl direkt den Wochentag als Namen ausgibt?

Scriptsprache ist VBA.
 
Man kann auch eigene Funktionen schreiben. Klingt unglaublich, ist aber so.

Nenne es Ironie oder Schicksal, aber schau mal was der erste Treffer bei vba function in Google liefert... mit etwas Kreativität findest du da sogar fast schon eine Lösung, aber wie man z.B. aus "Sunday" dann "So" macht, musst du dann schon selbst rausfinden...

Oder du nimmst die Funktion TEXT als Basis...
 
Zuletzt bearbeitet:
Google mal nach "VBA case". Da kannst du einfach sagen, dass wenn weekend(datum)=1, dann case 1. und case 1 = Montag.
 
Also, das muß auch anders gehen. Schließlich gibt es ja extra Regional settings in Windows. Macht ja keinen sinn, die Konstanten nochmal abzufragen oder zu definieren.

Suche mal nach Regional settings VBA oder VBS bei Google.
 
Code:
wochentagName = Format(Datum, "dddd")
Alternative für eigene Texte etc.:
Code:
'weekday() liefert in der Regel Werte, wo Sonntag der erste Tag der Woche ist (systemabhängig)'
wochentage = Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa")
wochentagName = wochentage(weekday(Datum))

Edit: Hier noch die Hilfeseite zu Format(): http://msdn.microsoft.com/library/office/gg251755.aspx
So umfangreich sie ist, so wenig muss man selber machen ;)
 
Zuletzt bearbeitet:
WeekdayName(weekday(Datum))
http://www.techonthenet.com/excel/formulas/weekdayname.php

aber du kannst es natürlich auch kompliziert machen, wie es bei den meisten programmierern üblich ist.
dann sieht so eine simple funktion nämlich auf einmal ganz schwer aus, hat mehrere zeilen code und ist ne ganz neue fehlerquelle.
als nächsten schritt bastelst dir dann eine methode drumherum, welche die erste funktion auf fehler prüft. usw.
 
Zurück
Oben