我对编码非常陌生,并且真的很难编写此代码。我希望有人可以帮助我。这是我要完成的工作:
在“ Jim的2018年2周快照回顾”的第19列(“ S”)中放置“ y”或“ Y”时,我要复制该行的B:G和J:R列。
将复制的行放置在标题为“ Accounting”的其他电子表格上,并在C:Q列上使用标题为“ Unprocessed Acct Data”的选项卡。
然后,我需要在该粘贴行“ JT”的B列中写内容。
最后,将原始的“ y”更新为“已复制”。
如果有帮助,这里是两个测试文档的链接。
function myFunction(e) {
var sourceSheetName = "Reviewed 2018 2 Week Snapshot for Jim";
var destinationSpreadsheetId = "1l1f6SrN7d6hYDhfv8W_ne15vAd7xSJlC6138jpoXpC4";
var destinationSheetName = "Unprocessed Acct Data";
if (e.source.getSheetName() == sourceSheetName && e.range.getcolumn() == 19 && e.value.toUpperCase() == "Y") {
var sourceValues = e.source.getRange("B:G" && "J:R").getValues().filter(function(e){return e.filter(String).length > 0});
var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
var ts = tss.getSheetByName(destinationSheetName);
ts.getRange(ts.getLastRow() + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);
}
}
答案 0 :(得分:0)
如果我对您的问题的理解是正确的,那么此修改如何?我认为您的情况有几个答案。因此,请将此视为其中之一。
Reviewed 2018 2 Week Snapshot for Jim
中检索值“ B:R”作为源值。
Y
的行中从“ B”列到“ R”列的值。Unprocessed Acct Data
的电子表格的{B:Q“到1l1f6SrN7d6hYDhfv8W_ne15vAd7xSJlC6138jpoXpC4
中。Y
上将Copied
修改为Reviewed 2018 2 Week Snapshot for Jim
。请进行如下修改。
从:if (e.source.getSheetName() == sourceSheetName && e.range.getcolumn() == 19 && e.value.toUpperCase() == "Y") {
var sourceValues = e.source.getRange("B:G" && "J:R").getValues().filter(function(e){return e.filter(String).length > 0});
var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
var ts = tss.getSheetByName(destinationSheetName);
ts.getRange(ts.getLastRow() + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);
}
至:
if (e.source.getSheetName() == sourceSheetName && e.range.getColumn() == 19 && e.value.toUpperCase() == "Y") {
var row = e.range.getRow();
var sourceValues = e.source.getRange("B" + row + ":R" + row).getValues()[0];
var values = [sourceValues.slice(0, 6).concat(sourceValues.slice(8, 17))];
values[0].unshift("JT");
var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
var ts = tss.getSheetByName(destinationSheetName);
ts.getRange(ts.getLastRow() + 1, 2, values.length, values[0].length).setValues(values);
e.range.setValue("Copied");
}
myFunction2(e)
),并为其安装触发器。如果函数名称重复,则脚本无法正常工作。如果我误解了您的问题,请告诉我。我想修改它。