我是Google表脚本的新手,并试图执行以下操作。我有2列:包含启动时间代码和d包含末端时间代码的C。第三列(f)包含由开始时代和结束时间代码产生的膜提示的长度。由于时间代码是由脚本产生的,因此包含结果的单元格不能导出到另一种格式。因此,我正在尝试创建一个第四列,该列将从f列作为值打印结果。我设法编写了一个可以做到的脚本。看起来这样:
function getRangeValuesEP01() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getSheetByName("EP01").getRange('F3:F100').activate();
var values = range.getValues();
return values;
};
问题是,当我编辑C或D中的任何时间编码时,它不会自动执行。
所以我尝试了:
function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet()
var sheetName = sheet.getName();
if ( sheetName == "EP02" || sheetName == "EP01" ) {
var range = sheetName.getRange('F3:F100').activate();
var r = sheetName.getActiveRange();
if (r.getColumn() == 4 ) {
var col = r.getColumn();
if ( col >= 3 && col <= 100 ) {
sheetName.getRange(r.getRow(),5);
var values = range.getValues();
}
}
}
}
它没有给我任何错误,但也没有任何做法。这可能没有真正的意义。正如我所说,我是这些脚本的新手。而且它不考虑在两个列C和D中寻找编辑。哦,或者足以查看F,因为当更改C或D时已经更新了结果?
也许有人可以将我推向正确的方向?
阅读注释:
function myonEdit(e)
{
var sheet=e.source.getActiveSpreadsheet();
var sheetName=sheet.getName();
if(sheetName=="EP02" || sheetName=="EP01")
{
var r=sheet.getRange('F3:F100');//I made changes up to this point but the next line makes no sense so rethink it in light of changes
if (r.getColumn()==4)//This line doesn't make any sense because you set range to F3:F100 F is column 6 so it will never be 4
{
var col= r.getColumn();
if ( col >= 3 && col <= 100 )
{
sheetName.getRange(r.getRow(),5);
var values = range.getValues();
}
}
}
}