• home
  • forum
  • my
  • kt
  • download
  • How To Get the Weekday as Text in Excel VBA

    Author: 2009-07-20 08:43:32 From:

    I often want to know what day of the week a date is. Excel has a function for this, but unfortunately it only returns an integer, for example the function:
    =WEEKDAY("01/02/2009")
    returns 1 (which represents Sunday).

    This can be a bit confusing with a list of dates, so I wrote the following quick VBA function to get the day of the week as text, e.g. Sunday, Monday, etc.

    The function (possibly not the most elegant method possible) is:

    ' function to return a text representation of the weekday of a given date
    ' returns the full text, which can be shortened by left(), etc
    Function dayText(d As Date) As String
    If Weekday(d) = 1 Then dayText = "Sunday"
    If Weekday(d) = 2 Then dayText = "Monday"
    If Weekday(d) = 3 Then dayText = "Tuesday"
    If Weekday(d) = 4 Then dayText = "Wednesday"
    If Weekday(d) = 5 Then dayText = "Thursday"
    If Weekday(d) = 6 Then dayText = "Friday"
    If Weekday(d) = 7 Then dayText = "Saturday"
    End Function

    (Enter this via the VBA Editor – press Alt+F11, then insert -> module and paste this code in).

    It can then be called by:
    =DAYTEXT("01/02/2009")
    which returns Sunday.

    This can then be shortened to one or three letters via the left() function, for example:
    =LEFT(DAYTEXT("01/02/2009"),3)
    returns Sun.

    If you want to avoid macros, an alternative method is to use the (slightly messy) formula consisting of nested IFs, for a spreadsheet with a date in cell A1:
    =IF(WEEKDAY(A1)=1, "Sunday", IF(WEEKDAY(A1)=2,"Monday",IF(WEEKDAY(A1)=3, "Tuesday", IF(WEEKDAY(A1)=4, "Wednesday", IF(WEEKDAY(A1)=5, "Thursday", IF(WEEKDAY(A1)=6, "Friday", "Saturday"))))))

    discuss this topic to forum

    relation tutorial

    No information

    Category

      Basics (41)
      Charts and Graphs (12)
      Formatting (27)
      Functions (14)
      Macros (11)

    New

    Hot