目標:
我為作業創建了一個提交表單。理想情況下,它允許根據輸入值提交到 3 個單獨的表單。我正在使用與帶有復選框的單元格對應的 .isChecked 來確定單元格輸入是否將共享給多個表單。綜上所述,輸入了 X 個單元格,提交到 1 個表單。如果選中該框,則為 1 和 2 提交相同的資訊以及更多資訊。我將提交下面的代碼。
問題:
無論復選框是否被選中,它都會輸入到兩個表單中。我的 if 陳述句一定是錯誤的,因為一旦我將代碼放在 if 陳述句中,第二種形式就不會接受輸入。我的 submitData2 函式也是灰色的,我假設這意味著不活動
我對編碼也很陌生,所以如果可能的話,請幫助我理解。
下面的代碼將其顯示為 2 個函式,一個用于輸入 1 張,另一個用于最后一個 if .isChecked==true
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Req. Form"); //User Form
var datasheet = ss.getSheetByName("Defect List"); //Database
//Input Values
var values = [[formSS.getRange("E7").getValue(),
formSS.getRange("E9").getValue(),
formSS.getRange("E11").getValue(),
formSS.getRange("E13").getValue(),
formSS.getRange("E15").getValue(),
formSS.getRange("E17").getValue(),
formSS.getRange("E19").getValue(),
formSS.getRange("E21").getValue(),
formSS.getRange("E23").getValue()]];
var blankRow=datasheet.getLastRow() 1;
datasheet.getRange(blankRow,3).setValue(formSS.getRange("E7").getValue());
datasheet.getRange(blankRow,4).setValue(formSS.getRange("E9").getValue());
datasheet.getRange(blankRow,5).setValue(formSS.getRange("E11").getValue());
datasheet.getRange(blankRow,6).setValue(formSS.getRange("E13").getValue());
datasheet.getRange(blankRow,1).setValue(formSS.getRange("E23").getValue());
function submitData2() {
var xx = SpreadsheetApp.getActiveSpreadsheet();
var formXX = xx.getSheetByName("Req. Form");
var downTime = xx.getSheetByName("Downtime List");
var values2 = [[fromXX.getRange("E7").getValue(),
formXX.getRange("E9").getValue(),
formXX.getRange("E11").getValue(),
formXX.getRange("E17").getValue(),
formXX.getRange("E19").getValue(),
formXX.getRange("E21").getValue()]];
var blankRow2=downTime.getLastRow() 1;
if(downTime.getRange("E15").isChecked()==true){
downTime.getRange(blankRow2,1).setValue(formXX.getRange("E9").getValue());
downTime.getRange(blankRow2,2).setValue(formXX.getRange("E7").getValue());
downTime.getRange(blankRow2,5).setValue(formXX.getRange("E11").getValue());
downTime.getRange(blankRow2,9).setValue(formXX.getRange("E19").getValue());
downTime.getRange(blankRow2,8).setValue(formXX.getRange("E21").getValue());
downTime.getRange(blankRow2,7).setValue(formXX.getRange("E17").getValue());
}
}
uj5u.com熱心網友回復:
這對我有用:
function submitData2() {
const ss = SpreadsheetApp.getActive();
const sh1 = ss.getSheetByName("Sheet1");
const sh2 = ss.getSheetByName("Sheet2");
const vs = [sh1.getRange("E1").getValue(),
sh1.getRange("E2").getValue(),
sh1.getRange("E3").getValue(),
sh1.getRange("E4").getValue(),
sh1.getRange("E5").getValue(),
sh1.getRange("E6").getValue()];
const blankRow2 = sh2.getLastRow() 1;
if (sh2.getRange("E1").isChecked()) {
//if (sh2.getRange("E1").isChecked() == true) {//this works also
sh2.getRange(blankRow2, 1).setValue(vs[0]);
sh2.getRange(blankRow2, 2).setValue(vs[1]);
sh2.getRange(blankRow2, 5).setValue(vs[2]);
sh2.getRange(blankRow2, 9).setValue(vs[3]);
sh2.getRange(blankRow2, 8).setValue(vs[4]);
sh2.getRange(blankRow2, 7).setValue(vs[5]);
}
}
表 1:

表2:

我的復選框的真值為“真”,假值為“假”
uj5u.com熱心網友回復:
答案在“if”陳述句中:
if 陳述句是: if(downtime.getRange("E15").isChecked()==true)
答案是:if(formSS.getRange("E15").isChecked()==true)
我是從錯誤的形式呼叫的,它總是產生錯誤的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/418103.html
標籤:
上一篇:Google表格中的條件格式可以識別一些等于0的單元格值,而不是其他值
下一篇:如何在列中查找6位條形碼
