我試圖在函式運行后取消選中相應的復選框。
它最初記錄為 True(因為它已被檢查),然后將 false 分配給它,然后它記錄為 false。但是,電子表格仍顯示 True 并且復選框仍處于選中狀態。
謝謝
function getData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Get data range and values
var rows = ss.getDataRange().getValues();
var teeTimes = [];
// Loop through each row of range
rows.forEach(function (row) {
// If checkbox is true
if (row[7] === true && row[8] === false) {
Logger.log(row[7]); // Prints True
row[7] = false;
var singleTime = {};
singleTime.day = Utilities.formatDate(row[1], "GMT", 'MMM d');
singleTime.time = Utilities.formatDate(row[2], "EST", 'h:mm');
singleTime.player1 = row[3];
singleTime.player2 = row[4];
singleTime.player3 = row[5];
singleTime.player4 = row[6];
teeTimes.push(singleTime);
Logger.log(row[7]); // Prints False
}
});
}
電子表格的圖片
uj5u.com熱心網友回復:
試試這個方法
function getData() {
var ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet0')
var vs = sh.getRange(2,1,sh.getLastRow() -1, sh.getLastColumn()).getValues();
vs.forEach((r,i) => {
if (r[7] == true && r[8] == false) {
vs[i][7] = "FALSE";
Logger.log(r[7]); // Prints False
}
});
sh.getRange(2,1,vs.length,vs[0].length).setValues(vs);
}
我拿出了與問題無關的東西。我還添加了 sh 變數,以便我可以 setValues();
你也可以這樣做:
function getData() {
var ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet0')
var vs = sh.getRange(2,1,sh.getLastRow() -1, sh.getLastColumn()).getValues();
vs.forEach((r,i) => {
if (r[7] == true && r[8] == false) {
sh.getRange(i 2,8).setValue("FALSE");
//Logger.log(r[7]); // Prints False
}
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463911.html
標籤:谷歌应用脚本
