google-apps-script - Google Scripts - 创建表单后找不到目标表
问题描述
我的脚本以编程方式创建了一个 Google 表单并将目标设置为当前电子表格:
var sheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
var form = FormApp.create(acctName).setTitle(acctName).setDestination(FormApp.DestinationType.SPREADSHEET, sheetId);
// several form items added here
接下来,我想重命名目标工作表并进行一些格式编辑。但是,当我这样做时,该表似乎不存在。比如getSheets()
不包含新的Sheet!(是的,理想情况下,我想通过 ID 打开工作表;请参阅下面的功能,该功能也不起作用。)
var sheets = SpreadsheetApp.openById(form.getDestinationId()).getSheets();
SpreadsheetApp.setActiveSheet(sheets[0]);
上面的代码打开了我认为索引 1,而不是索引 0,因为工作表没有索引。我什至尝试创建几秒钟的延迟(希望允许客户端和服务器之间发生同步只是时间问题)但没有任何成功。
getSheets()
正如 Stack Overflow 上其他地方所建议的那样,我也尝试了以下类似的方法,但即使通过单独的函数调用目标工作表也不会出现:
function getFormDestinationSheetId(form) {
var destinationId = form.getDestinationId();
if(destinationId) {
var spreadsheet = SpreadsheetApp.openById(destinationId);
spreadsheet.getSheets().forEach(
function(sheet) {
var sheetFormUrl = sheet.getFormUrl();
if(sheetFormUrl) {
var sheetForm = FormApp.openByUrl(sheetFormUrl);
if(sheetForm.getId() == form.getId()) {
return sheet.getSheetId();
}
}
}
);
}
return null;
}
我一直无法在网上找到任何有类似问题的人。任何意见,将不胜感激。谢谢!
解决方案
欢迎来到堆栈!
我假设您的脚本绑定到工作表?根据您调用脚本的方式,由于浏览器缓存,您可能看不到新工作表。
function myFunction() {
var sheet = SpreadsheetApp.getActive();
var sheetId = sheet.getId();
var form = FormApp.create('acctName').setTitle('acctName').setDestination(FormApp.DestinationType.SPREADSHEET, sheetId);
var ssSheets = sheet.getSheets();
var respSheet = ssSheets[0]
respSheet.getRange('A1').setBackground('RED');
respSheet.getRange('C1').setFormula('=COUNTA($C$2:$C)');
respSheet.setColumnWidth(2, 100);
SpreadsheetApp.flush();
}
推荐阅读
- popup - Shopify 弹出窗口 - 添加结帐按钮
- vba - 如何使用多个组合框对 DLookup 进行编码?
- html - 'ion-progress-bar' 是一个 Angular 组件,然后验证它是这个模块的一部分
- wordpress - 管理面板中缺少 WooCommerce 的“产品图片”区域
- javascript - $.getJSON 没有在 addEventListener 中运行
- amazon-quicksight - 我的 Amazon Quicksight 控制面板未加载。仪表板正在使用 SPICE 数据集
- flutter - 将捏合的图像叠加在所有内容之上
- vba - 如何让 VBA 开始下载文件而不是等待它完成后再继续下一行代码
- mongodb - 日期范围之间的MongoDB查询
- ios - systemLayoutSizeFitting(_:) 不遵守十进制数的宽度或高度限制