我是Google表格脚本的新手,并且试图执行以下操作时遇到困难。我有2列:C包含开始时间码,D包含结束时间码。第三列(F)包含由开始时间码和结束时间码产生的电影提示的长度。由于时间码来自脚本,因此包含结果的单元格无法导出为其他格式。所以我试图创建第4列,将列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改变时它已经更新了它的结果?
也许有人可以把我推向正确的方向?
答案 0 :(得分:0)
阅读评论:
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();
}
}
}
}