簡體   English   中英

在Google腳本中,未顯示新添加的表單響應表

[英]In Google script, newly added forms response sheet is not showing up

在js中,我正在打開一個Google工作表,對其執行一些功能。 然后,我打開一個Google表單,並將響應目標設置為該工作表。 這將自動添加一個新的工作表。 但是,在腳本中,不會顯示新的工作表。

以下是相關代碼:

var userCBsheet = SpreadsheetApp.open(userCBfile);
Logger.log("Sheet Count 1: " +userCBsheet.getNumSheets());
//this shows 8 sheets correctly

var formLL = FormApp.openById(userLLfile.getId());
formLL.setDestination(FormApp.DestinationType.SPREADSHEET,userCBsheet.getId());

Logger.log("Sheet Count 2: " +userCBsheet.getNumSheets());
//Still shows 8

因此,我嘗試了一些選擇,例如添加睡眠或使用新變量重新打開文件。

//same as above, then added
var cbid=userCBsheet.getId(); 
var userCBsheet2 = SpreadsheetApp.openById(cbid);
Logger.log("Sheet Count 3: " +userCBsheet2.getNumSheets());
//still shows 8

如果我讓函數完成,然后運行一個簡單的檢查,就可以了:

function junk() {
  var files = DriveApp.getFilesByName(theName);
  var file = files.next();
  var ss = SpreadsheetApp.openById(file.getId())
  Logger.log("Sheet Count 4: " +ss.getNumSheets());
  //this returns 9 (as it should).
}

所以問題是,通過表單的setDestination函數將新創建的標簽添加到工作表后,如何訪問它?

像這樣更改表單目標后,添加SpreadsheetApp.flush():

var formLL = FormApp.openById(userLLfile.getId());
   formLL.setDestination(FormApp.DestinationType.SPREADSHEET,userCBsheet.getId());
SpreadsheetApp.flush()
Logger.log("Sheet Count 2: " +userCBsheet.getNumSheets());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM