我有一个脚本,该脚本正在从Google云端硬盘创建的Apps脚本中运行,如下所示:
df = data.frame(Sample = c(rep(1,4), rep(2,4),rep(1,4), rep(2,4)),
Replication = c(rep(1,8), rep(2,8)),
Days = c(10,14,13,14,NA,5,18,20,16,NA,18,21,15,7,12,14))
当我在应用程序脚本中运行此脚本时,该功能可以正常工作。我现在想从工作表中的按钮运行此功能。以前,我在电子表格本身的脚本中编写了类似于以下脚本:
var ssid="14ESdH--------------------------------HOn8A";
SHEET_NAME = "Chilled Sheet";
SORT_DATA_RANGE = "A3:F";
SORT_ORDER = [
{column: 2, ascending: true}, // 1 = column number, sort by ascending order
];
function autoSort(){
var ss=SpreadsheetApp.openById(ssid);
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
不幸的是,使用它并以各种方式对其进行了多次编辑,但我无法获得工作表上的按钮来读取脚本function onClickButton() {
var sheet = SpreadsheetApp.getActiveSheet();
autoSort(sheet);
}
。我最终将其删除,并尝试使用也可以工作的按钮运行脚本onClickButton
。
请问有人对我如何使用激活autoSort
脚本的按钮运行表格有任何想法吗?
答案 0 :(得分:1)
下面是一个diagram,您可以用来创建按钮并将其连接到脚本。
现在参考此脚本:
function onClickButton() {
var sheet = SpreadsheetApp.getActiveSheet();
autoSort(sheet);
}
您应该注意,您要包含参数“工作表”
但是在此函数定义中没有参数。
function autoSort(){
var ss=SpreadsheetApp.openById(ssid);
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
我个人总是会包括要在函数定义中运行该函数所需的所有值。
var ssid="14ESdH--------------------------------HOn8A";
SHEET_NAME = "Chilled Sheet";
SORT_DATA_RANGE = "A3:F";
SORT_ORDER = [
{column: 2, ascending: true}, // 1 = column number, sort by ascending order];
也许您没有注意到在注释上方的那一行中,该注释被放置在SORT_ORDER的字符串内,因此行不通。
function autoSort(){
var SHEET_NAME = "Chilled Sheet";
var SORT_DATA_RANGE = "A3:F";
var SORT_ORDER = [{column: 2, ascending: true}];
var ss=SpreadsheetApp.openById(ssid);
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
并且由于他们以任何方式进行硬连线,所以我只能这样做:
function autoSort(){
var ssid="14ESdH--------------------------------HOn8A";
var ss=SpreadsheetApp.openById(ssid);
var sheet = ss.getSheetByName("Chilled Sheet");
var range = sheet.getRange("A3:F");
range.sort([{column: 2, ascending: true}]);
}