我在處理應用程式腳本中的 isBlank() 和 getRange() 時遇到問題。
我有一個簡單的表單,并希望在用戶單擊提交按鈕時檢查所有單元格是否已填寫(分配了腳本 submitData)
這是我的腳本:
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet
var datasheet = ss.getSheetByName("Data"); //Data Sheet
var ui = SpreadsheetApp.getUi(); //Access to UI
var validate_cell = formSS.getRange("B3:B7");
if (!validate_cell.isBlank()) {
//Input Values
var values = [[formSS.getRange("B3").getValue(),
formSS.getRange("B8").getValue(),
formSS.getRange("B4").getValue()]];
datasheet.getRange(datasheet.getLastRow() 1, 1, 1, 3).setValues(values);
var formula = formSS.getRange("B8").getFormulas();
var rangetoclear = ["B5", "B6", "B7", "B8"]
formSS.getRangeList(rangetoclear).clearContent();
formSS.getRange("B8").setFormulas(formula)
} else {
error = 'Please fill up everything';
ui.alert(error);
}
}
現在,我對 isBlank() 的驗證僅適用于提示中的ui.alert(error)所有單元格getRange("B3:B7")是否為空。
我試過使用,getRangeList()但它似乎不起作用isBlank()
我試過更改為getRange("B3", "B4", "B5", "B6", :B7"),但回傳錯誤。我也為 getRange 嘗試過 for 回圈,但我不確定什么是正確的方法,因為我所有的 for 回圈實作都不起作用。
有人可以幫我理直氣壯嗎?
uj5u.com熱心網友回復:
我稍微改變了你的代碼
function submitData() {
let ss = SpreadsheetApp.getActive(),
formSS = ss.getSheetByName("Form"), //Form Sheet
formData = formSS.getRange("B3:B8").getValues().flat(), //Form Data
formDataHasBlankCells = formData.includes(''); //check if there are any empty cells in the data
if (formDataHasBlankCells) {
SpreadsheetApp.getUi().alert('Please fill up everything')
} else {
let datasheet = ss.getSheetByName("Data"),
values = [[formData[0], // B3 value
formData[5], // B8 value
formData[1]]]; // B4 value
datasheet.getRange(datasheet.getLastRow() 1, 1, 1, 3).setValues(values);
// I removed cell B8 from the cleaning range because this cell contains the formula,
// not the value - so there is no need to clear the cell and overwrite the formula
let rangetoclear = ["B5", "B6", "B7"];
formSS.getRangeList(rangetoclear).clearContent();
}
為了檢查范圍內的空單元格B3:B7,我使用了陣列方法.includes()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/339409.html
標籤:谷歌应用程序脚本
