我刚接触Google脚本时,有人可以帮忙吗?
我有这个简单的代码,可以将值从一张纸复制到另一张纸
function copyrevision() {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var destSheet = ss.getSheetByName("Fallas Tecnicas");
//DATE
var source = ss.getRange ("D4");
var destRange = destSheet.getRange(destSheet.getLastRow()+1,1);
source.copyTo (destRange, {contentsOnly: true});
//REPORT NUMBER
var source2 = ss.getRange ("C4");
var destRange = destSheet.getRange(destSheet.getLastRow(),2);
source2.copyTo (destRange, {contentsOnly: true});
//OBSERVACION
var source6 = ss.getRange ("E49");
var destRange = destSheet.getRange(destSheet.getLastRow(),6);
source6.copyTo (destRange, {contentsOnly: true});
}
仅当目标表的第2列中不存在报告编号值时,我才需要执行此操作。
怎么办?
答案 0 :(得分:0)
您可以使用isBlank()
:
if (destRange.isBlank()) source.copyTo (destRange, {contentsOnly: true});
答案 1 :(得分:0)
我通常使用两种不同的功能将Google表格列与单个值进行比较。
function isInArray(value, array) {
return array.indexOf(value) > -1;
}
读入该列,该列将显示为二维数组,因此我将其展平以使其更易于与单个值进行比较。
function flatten(arrayOfArrays){
return [].concat.apply([], arrayOfArrays);
}
首先读入该列中的报告编号
var reportNumbers = ss.getRange("C:C").getValues();
然后我读入要与扁平化数组进行比较的值。
var valueToCompare = ss.getRange("C4").getValue();
if (isInArray(valueToCompare, flatten(reportNumbers)) == true){
// value is in array
};
如果值在数组中,我将比较这两个元素,然后得到true,否则返回false。
这些功能的来源 https://gist.github.com/MauricioMoraes/225afcc9dd72acf1511f