Google apps script 基于if-else条件编辑单元格的公式
我计划创建一个单元格,如果G2中的单元格为空,那么它将从a行复制内容,但如果G列中的单元格更新了其他内容,我不想从a行复制内容。我已经在应用程序脚本中编写了类似的代码,但它不起作用Google apps script 基于if-else条件编辑单元格的公式,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我计划创建一个单元格,如果G2中的单元格为空,那么它将从a行复制内容,但如果G列中的单元格更新了其他内容,我不想从a行复制内容。我已经在应用程序脚本中编写了类似的代码,但它不起作用 function getLast(range) { var getResult = function(range) { if (!((range.getNumRows() > 1 && range.getNumColumns() == 1) || (range.getNu
function getLast(range) {
var getResult = function(range) {
if (!((range.getNumRows() > 1 && range.getNumColumns() == 1) || (range.getNumRows() == 1 && range.getNumColumns() > 1))) {
throw new Error("Please input one row or one column.");
}
var v = Array.prototype.concat.apply([], range.getValues());
var f = Array.prototype.concat.apply([], range.getFormulas());
var i;
for (i = v.length - 1; i >= 0; i--) {
if (v[i] != "" || f[i] != "") break;
}
return i + 1;
};
if (Array.isArray(range)) {
return range.map(function(e) {
return getResult(e);
});
} else {
try {
range.getA1Notation();
} catch (e) {
throw new Error("Inputted value is not a range.");
}
return getResult(range);
}
}
function formulasheets(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
sheet.getRange("G2").setFormula('=IF(G2="",A2, ');
var range1 = sheet.getRange("B:B");
var fillDownRangecolumnI = sheet.getRange(2, 7, lr-1);
sheet.getRange("G2").copyTo(fillDownRangecolumnA);
}
为了更好地解释我想要什么,我附上了我的谷歌工作表的图片。有人能帮我吗。非常感谢。
我明白你的问题了,我想试一试,希望对你有用。请参考下面我编辑的代码,我认为最好使用for循环检查是否为空,并避免编写公式:
function formulasheets(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
for (var x=1;x <= sheet.getLastRow();x++){
var cell = sheet.getRange(x,7);
if (cell.isBlank()){
sheet.getRange(x,1).copyTo(cell);
}
}
}
函数公式表(){
var ss=SpreadsheetApp.openByUrl(url);
var sheet=ss.getSheetByName(“用户名”);
对于(var x=1;x这是我想要的。非常感谢您的帮助欢迎,我也喜欢应用程序脚本:)
It should be updated with content in row A
function formulasheets(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
for (var x=1;x <= sheet.getLastRow();x++){
var cell = sheet.getRange(x,7);
if (cell.isBlank()){
sheet.getRange(x,1).copyTo(cell);
}
}
}