Forum Discussion

dylanvan's avatar
dylanvan
Copper Contributor
Nov 07, 2025
Solved

Script changing dates to text

I"m trying to make a script to transform a column with dates to text. Normally i would just use the TEXT function but the issue is that the new text values need to replace the old date values. The d...
  • SergeiBaklan's avatar
    Nov 08, 2025

    As variant you may replace dates with texts in place, it could be like

    function main(workbook: ExcelScript.Workbook) {
    
    // https://techcommunity.microsoft.com/discussions/excelgeneral/script-changing-dates-to-text/4468085
    
      fnDateToText(workbook.getActiveWorksheet().getRange("E:E").getUsedRange())
      fnDateToText(workbook.getActiveWorksheet().getRange("H:H").getUsedRange())
    
    }
    
    const fnDateToText = (columnRange: ExcelScript.Range) =>
      {
        const converted = columnRange.getValues().map(x => {
          const scalar = x[0]
          let dateAsText: number | string | boolean = null
          if (typeof scalar === "number") {
            const d = new Date(Math.round((scalar - 25569) * 86400 * 1000))
            dateAsText =
              d.getDate().toString().padStart(2, '0') + "/" +
              (d.getMonth() + 1).toString().padStart(2, '0') + "/" +
              d.getFullYear().toString()
          } else { dateAsText = scalar }
          return [dateAsText]
        })
    
      columnRange.setNumberFormatLocal("@")
      columnRange.setValues(converted)
      
      }

    Function converts numbers (which dates actually are) in the column into text with date converted to "dd/mm/yyy". And ignores other values in such column.

Resources