我熟悉 Excel VBA,但我不熟悉 Google 腳本編輯
如果單元格 A2 和 B2 不是空白,我正在嘗試使用一個簡單的 IF 陳述句在第 2 行上方插入一個新行。
function AddaLine() {
if (B1 == false)
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('2:2').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('A2').activate();
};
其中單元格 B1 包含
=isblank(A2:B2)
或者
function AddaLine() {
if (A2, B2 != null)
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('2:2').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('A2').activate();
};
我能想到的每個組合都會回傳錯誤。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
我相信你的目標如下。
- 從
I am trying to use a simple IF statement to insert a new line above line 2 if cells A2 & B2 are NOT Blank.,當單元格“A2”和“B2”不為空時,您想在第 2 行插入一個新行。
在這種情況下,如何進行以下修改?
修改后的腳本:
function AddaLine() {
var spreadsheet = SpreadsheetApp.getActive();
var [a2, b2] = spreadsheet.getActiveSheet().getRange("A2:B2").getDisplayValues()[0];
if (a2 != "" && b2 != "") {
spreadsheet.getRange('2:2').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('A2').activate();
}
}
或者,比如作為一個簡單的腳本,下面的修改怎么樣?
function AddaLine() {
var sheet = SpreadsheetApp.getActiveSheet();
var [a2, b2] = sheet.getRange("A2:B2").getDisplayValues()[0];
if (a2 != "" && b2 != "") {
sheet.insertRowBefore(2);
}
}
- 為了檢查單元格“A2”和“B2”是否不為空,我比較了從單元格中檢索到的值。
筆記:
作為來自Rubén's comment的建議的附加資訊,在您的腳本中,您使用以下腳本。
if (A2, B2 != null) var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('2:2').activate();在這種情況下,當條件為 時
true,只var spreadsheet = SpreadsheetApp.getActive();運行的行。當您想使用下面的腳本時if (A2, B2 != null),請用 將它們括起來{}。參考
uj5u.com熱心網友回復:
而是為了教育目的。如果要檢查陣列的所有元素,可以使用every()方法:
function AddaLine() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getRange("A2:B2").getDisplayValues().flat();
if (data.every(x => x != '')) sheet.insertRowBefore(2);
}
- JavaScript 陣列 every()
或者,在您的情況下,您可以使用some()檢查某些元素是否為空:
function AddaLine() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getRange("A2:B2").getDisplayValues().flat();
if (data.some(x => x == '')) return; // do nothing if there is an empty cell
sheet.insertRowBefore(2);
}
- JavaScript 陣列 some()
可能somme()會更有效一點,因為它不需要檢查陣列的所有元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343896.html
標籤:javascript if 语句 谷歌应用程序脚本 谷歌表格
