google-apps-script - 我对缩短代码和使用特定范围的方法有疑问
问题描述
我对应用程序脚本没有足够的了解,所以我使用了宏并尝试缩短代码,但找不到缩短此代码的方法。另外,我想知道是否有一种方法可以选择某些范围并仅针对该范围自动填充。
目前,我不知道,所以我只是把整个专栏...;; 并弹出异常提示“异常:单元格引用超出范围('宏'文件,第 30 行)”以下代码的最后一行代码是第 30 行(spreadsheet.getRange('E2:F3001')。激活().sort({列:1,升序:真});)
你能帮我解决这个问题吗?任何意见,将不胜感激。
function myFunction3() { var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A2:B2').activate();
var currentCell = spreadsheet.getCurrentCell();
spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('sheet9'), true);
spreadsheet.getRange('A2').activate();
spreadsheet.getRange('\'sheet8\'!A2:B').copyTo(spreadsheet.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getRange('A2').activate();
currentCell = spreadsheet.getCurrentCell();
spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
spreadsheet.getRange('E2').activate();
spreadsheet.getRange('A2:A').copyTo(spreadsheet.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
var dupl = spreadsheet.getRange('E2:E').activate();
dupl.removeDuplicates();
spreadsheet.getRangeList(['A:A', 'E:E']).activate().setNumberFormat('@');
spreadsheet.getRange('D2').activate();
spreadsheet.getCurrentCell().setFormula('=if(E2="","",date(year(E2),month(E2),day(E2)))');
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('d2:d3001'),
SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('F2').activate();
spreadsheet.getCurrentCell().setFormula('=iferror(TEXTJOIN("\n",true,QUERY($A$2:$B,"select B where A =\'"&E2&"\'")),"")');
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('F2:F3001'), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('E2:F3001').activate().sort({column: 1, ascending: true});};
解决方案
您在sort()中指定的列号是指整个电子表格,而不是范围
换句话说, column1
是 column A
- 即使您的范围以E
.
如果您想按列对范围进行排序E
,请将您的请求修改为
spreadsheet.getRange('E2:F3001').sort({column: 5, ascending: true})
推荐阅读
- sql - 查询以返回数组中 GROUP BY 的所有结果
- javascript - 如何应用这种宽松过渡?没有 jQuery
- php - Laravel 关系多对多错误返回计数
- python - 如何在 keras/tensorflow 中为 cnn 模型提供不同尺寸的图像
- android - ActivityIndicator 在 Android 上不旋转或仅动画静态图像
- ruby-on-rails - 乘客的 Heroku H13 错误
- material-components-web - 通过带有单个组件的 CDN 的 MDC-Web:window.mdc.autoInit 不是函数
- c - 从在 anOS 下运行的固件重置板
- php - Laravel Entrust Permissions 禁用文本输入
- cmake - 如何在cmake中将变量从父项目传递到子项目