Google apps script 填写前一行时自动添加行;这些行超出边界(第8行,文件“代码”)错误 我正在为一家视听公司创建一个建议书的中间人。生成器使用数据验证下拉列表从设备类型(音频、灯光、电气等)列表中进行选择。根据所选内容,以下数据验证单元格将下拉,其中包含该类型设备的子选项
其中一些项目相当大,需要大量设备,其他项目则小得多。我想设置它,这样当一件设备被选中时,另一行被创建在它下面,并允许选择更多选项。。。另一种方法是手动插入一行并向下复制前一行的公式,或者预先填充一组可能被选择的行,这可能会有一组额外的行的风险(对于将被重复使用数百次的东西来说不是很好) 我尝试了下面的脚本,我希望它能在我正在填写的当前行(第40行)下面添加一行。 这个脚本一直给我“那些行超出边界(第8行,文件“代码”)错误 有什么想法吗 编辑:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 运行此脚本一次将在底部返回一个添加的行,但似乎每次运行它之后,添加的行数都会翻倍 第一次运行:添加1行 第二次运行:添加2行 第三次运行:添加4行 第4次运行:添加8行 这个脚本中是否有明显的原因导致了这种情况的发生Google apps script 填写前一行时自动添加行;这些行超出边界(第8行,文件“代码”)错误 我正在为一家视听公司创建一个建议书的中间人。生成器使用数据验证下拉列表从设备类型(音频、灯光、电气等)列表中进行选择。根据所选内容,以下数据验证单元格将下拉,其中包含该类型设备的子选项,google-apps-script,Google Apps Script,其中一些项目相当大,需要大量设备,其他项目则小得多。我想设置它,这样当一件设备被选中时,另一行被创建在它下面,并允许选择更多选项。。。另一种方法是手动插入一行并向下复制前一行的公式,或者预先填充一组可能被选择的行,这可能会有一组额外的行的风险(对于将被重复使用数百次的东西来说不是很好) 我尝试了下面的脚本,我希望它能在我正在填写的当前行(第40行)下面添加一行。 这个脚本一直给我“那些行超出边界(第8行,文件“代码”)错误 有什么想法吗 编辑:~~~~~~~~~~~~~~~~~~~~~~~~~
有两种方法可以在insertRowsAfter(后位,有多少)抛出该错误(请参阅):
- 第一个参数是0
- 第一个参数大于该工作表中存在的行数。(如果工作表甚至没有400行,则无法在第400行之后插入)
- 假设您的工作表中有120行,所有行都充满了数据
- 由于工作表已满,numRows=120
var numRows=rows.getNumRows();
- 当您进行第一次循环迭代时,您将拥有
sheet.insertRowsAfter(120+startRow,1);
- 这导致脚本尝试在第160行之后插入一行,但该行甚至不存在(没有绑定)
var startRow = 40;
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
sheet.insertRowsAfter(startRow , 1); //or any number N instead of 1
我只看到六行代码。请提供一个。查看电子表格示例可能也很有用。我刚刚编辑了OP以包含完整的代码和我所指内容的可视化示例。希望这能有所帮助!
var startRow = 40;
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
sheet.insertRowsAfter(startRow , 1); //or any number N instead of 1