Google Apps脚本:使用电子表格范围作为参数从菜单调用函数
Google Apps Script: Calling a function from menu with a spreadsheet range as the parameter
我有一个函数,它接受电子表格范围作为参数,然后在给定范围的同一行中添加一个日期。
function autoDate(cell) {
var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 1;
var currentDateStr = new String();
currentDateStr = currentDate.getDate() + "/" + currentMonth;
var sheet = SpreadsheetApp.getActiveSheet();
if (cell.getValue() == ""){
var activeRowInt = cell.getRow();
var dateCell = sheet.getRange(activeRowInt,3); //3 is my date column
dateCell.setValue(currentDateStr);
}
}
我有一个菜单,我运行一个单独的函数,调用autoDate()与活动单元格作为参数(因为菜单系统不允许调用函数与参数)
function autoDateMenu(){
var sheet = SpreadsheetApp.getActiveSheet();
var activeCell = sheet.getActiveCell();
autoDate(activeCell);
}
如果我从脚本编辑器中运行autoDateMenu(),它工作得很好。如果我从电子表格的菜单中选择autoDateMenu()来运行它,我会得到以下错误:
TypeError:不能调用未定义的getValue方法。(第64行,文件"代码")
第64行指的是这一行:
if (cell.getValue() == ""){
下面是我为菜单写的代码:
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Read Data",
functionName : "readRows"
},{
name : "Set Date",
functionName : "autoDateMenu"
}];
spreadsheet.addMenu("Script Center", entries);
}
感谢您的回复
为什么不这样做呢?我认为你在参考资料方面有问题,这将解决。
菜单:function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Read Data",
functionName : "readRows"
},{
name : "Set Date",
functionName : "autoDate"
}];
spreadsheet.addMenu("Script Center", entries);
}
AutoDate功能:
function autoDate() {
var sheet = SpreadsheetApp.getActiveSheet();
var activeCell = sheet.getActiveCell();
var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 1;
var currentDateStr = new String();
currentDateStr = currentDate.getDate() + "/" + currentMonth;
if (activeCell.getValue() == ""){
var activeRowInt = cell.getRow();
var dateCell = sheet.getRange(activeRowInt,3); //3 is my date column
dateCell.setValue(currentDateStr);
}
}
删除中间人AutoDateMenu功能。
如果这对你的目的不起作用,我们可以尝试其他方法
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- AngularJS-参数'菜单Ctrl'不是函数,未定义
- 选择菜单的操作中的成员2参数
- 可折叠菜单是't工作-参数'边栏控制器'不是函数,未定义
- 如何在选择菜单中更改参数的情况下调用淘汰方法
- 需要帮助实现响应径向菜单的jquery参数
- 更改下拉菜单,在输入框中添加url参数
- 如何创建多个下拉菜单,调用不同的存储过程,并将前一个下拉菜单选择作为参数
- Google Apps脚本:使用电子表格范围作为参数从菜单调用函数
- 如何根据URL参数设置下拉菜单的默认值
- 使用select下拉菜单使用ruby on rails参数更新link_to
- 在温泉菜单上传递参数