VBA到GAS脚本转换

时间:2018-09-10 13:06:26

标签: excel excel-vba google-apps-script google-sheets

我对Excel和Spreadsheets中的宏和东西真的很陌生。我有一个朋友在Excel中创建了此宏,该宏可以完成所需的工作:

{{1}}

简而言之:我需要在第一张纸上输入一个文本,并在另一张纸上的等效单元格中生成今天的日期。

我需要这个,以便稍后使用日期进行条件格式设置,稍后再使用日期为每个单元格上色,具体取决于它是在今天还是在最后几天进行了更新。

可以将此宏转换为电子表格的脚本吗?

1 个答案:

答案 0 :(得分:2)

我会做这样的事情。每当您添加新值时,onEdit(e)就会触发。 然后,您获取值并将实际日期放置在另一个sheet的同一单元格中。如果您不想每次都不要执行此代码行,则还可以添加条件。

function onEdit(e)
{
  // condition to make sure you are not entering value in the date sheet
  if(e.source.getActiveSheet().getName() != "CFbase" && e.range.rowStart > 2)
  {
    //grab the sheet where you wan't the date to be inserted.
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CFbase");
    //grab the cell where the date will be inserted 
    var cell = sheet.getRange(e.range.getRow(), e.range.getColumn());
    //create the actual date
    var now = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy");
    //set the value of the cell with the date
    cell.setValue(now);
  }
}

Here是用于正确格式化Date的文档。