Google script to copy and rename a sheet and name is based on a cell reference

后端 未结 3 1715
名媛妹妹
名媛妹妹 2020-12-11 04:17

I\'m new to google scripts and I need to copy the current active sheet to a new sheet and then rename this sheet based on a cell value. My issue is the cell value is a date

相关标签:
3条回答
  • 2020-12-11 04:58

    Just using .getDisplayValue() in place of .getValue() in your code should do the trick.

    It gets the value displayed in the cell as a string, taking into account things like date formatting, so when you then use that to rename your sheet the sheet name will be the same as what you see in your cell.

    0 讨论(0)
  • 2020-12-11 05:03

    You would need to format the value into a string and then use it to set the name.

    var localTimeZone = "Europe/London";
    var dateFormatForFileNameString = "yyyy-MM-dd'at'HH:mm:ss";
    
    function CreateNewTimesheet() {
    
      // The code below makes a duplicate of the active sheet
      var ss = SpreadsheetApp.getActiveSpreadsheet()
      SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
    
      // The code below will rename the active sheet to Month End date based on cell O3
     var myValue = SpreadsheetApp.getActiveSheet( ).getRange("O3").getValue();
     var dateString = getDateString_(myValue);
     SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(dateString);
    }
    
    //Function to get Date as a string
    function getDateString_(dateValue) {
          return Utilities.formatDate(dateValue, localTimeZone,
                                      dateFormatForFileNameString);
    }
    

    Hope that helps.

    0 讨论(0)
  • 2020-12-11 05:03

    You need to construct a new Date(myValue), then look in the Utilities class for the date formatting function.

    0 讨论(0)
提交回复
热议问题