我不是巫師,但我一直在嘗試用谷歌應用腳??本學習一點,我只是對它為什么不起作用感到困惑。我查看了檔案并使用 if else 腳本參考了其他作品,但我找不到錯誤。背景關系:E7 是一個復選框,F7 是一個填空。
function testO() {
var mySS = SpreadsheetApp.getActiveSpreadsheet();
var getRange = mySS.getRange("E7")
if(getRange = true){
mySS.getRange("E7").setValue("FALSE")
}
else{
mySS.getRange("F7").clearContent()
}
}
uj5u.com熱心網友回復:
看起來你需要花一些時間學習 JavaScript 的基礎知識。請從閱讀https://developers.google.com/apps-script/guides/sheets開始,因為它提供了有用的指示,例如,
- Google Apps Script 編程語言是 JavaScript
- 如何讀取和寫入 Google 表格電子表格。
關于您的代碼的細節,
- 在
mySs.getRange
方法中,而不是A1
使用Sheet1!A1
樣式參考 - 在 if 陳述句中相等的比較運算式中,
=
使用抽象相等==
或嚴格相等===
運算子代替賦值運算子,但在這種非常特殊的情況下,使用Range.isChecked()
. - 有一些使用復選框的特定方法:
Range.isChecked()
,Range.uncheck()
,Range.check()
;
以下是修復腳本的建議:
function testO() {
var mySS = SpreadsheetApp.getActiveSpreadsheet();
var getRange = mySS.getRange("Sheet1!E7");
if(getRange.isChecked()){
getRange.uncheck();
}
else{
mySS.getRange("Sheet1!F7").clearContent();
}
}
筆記:
Google Apps 腳本對一些回傳相同型別物件的方法使用相同的方法名稱,即
Spreadsheet.getRange
,Sheet.getRange
,但它們可能需要不同的引數,Spreadsheet.getRange
可能使用A1
或Sheet1!A1
樣式參考。使用A1
時,它將A1
從第一張紙中獲取單元格。Sheet.getRange
可能會使用A1
樣式,但它會A1
從相應的作業表中回傳單元格。
uj5u.com熱心網友回復:
一個簡單的例子,有一些解釋
function testO() {
const ss = SpreadsheetApp.getActive();//I like havign access to the spreadsheet as a single variable. While it may not be important now it might be in the future.
const sh = ss.getSheetByName("Sheet0");//For clerity sake it is better to identify the sheet you are going to. In your code you depended upon the fact that the spreadsheet has a default active sheet which is ss.getSheets()[0]
const rg = sh.getRange("E7");//getRange returns a range no a value
const v = rg.getValue();//getValue returns a single value
if(v == true){ //= is an assignment == is a comparison
sh.getRange("E7").setValue("FALSE");//This is usually the value reserved for an unchecked checkbox
}
else{
rg.clearContent()
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/505199.html
標籤:javascript 谷歌应用脚本 谷歌表格 条件语句 比较运算符