我对Excel和Spreadsheets中的宏和内容都很陌生。我有一个朋友在Excel中创建了这个宏,它完成了所需的工作:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim day As String
If Target.Row > 2 Then
day = Date
Sheets("CFbase").Cells(Target.Row, Target.Column).Value = day
End If
End Sub
简而言之:我需要在我的第一张纸上输入一个文本,然后在另一张纸上的等效单元格中生成今天的日期。
我需要这样才能稍后使用日期进行条件格式化,然后使用日期为每个单元格着色,具体取决于它是在今天还是在最后几天更新的。
可以将此宏转换为电子表格的脚本吗?
我会做这样的事情。每当你添加一个新值时,onEdit(e)
triggers。然后你获取值并将实际日期放在另一个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
的文档。