使用 If 语句检查复选框列中的复选框是否被选中,然后 运行 剩余的脚本
Using an If statement to check if a checkbox in a column of checkboxes is checked, and then run the remaining script
我无法让下面的工作。任何帮助,将不胜感激。我 post 编辑了一个类似的 post,我得到了一些很大的帮助,但是当我在这里应用相同的概念时,我无法让它工作。谢谢。
/** @OnlyCurrentDoc */
function onEdit(e) {
//This IF statement ensures that this onEdit macro only runs when cells A1:A2 are edited
if (
e.source.getSheetName() == "Finances 2020" &&
e.range.getColumn() == 1 &&
1<=e.range.getRow()<=2
) {
//Cells A1:A2 are checkboxes. This section ensures the following script only runs when the checkbox is checked (and not when unchecked).
var checkboxtest = e.range.getValue()
if (checkboxtest == true) {
//Some script to test if the above works (by grabbing some text from a cell near by and pasting it into another):
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var test = spreadsheet.getRange(3, 3).getValues();
spreadsheet.getRange('A3').setValues(test);
}
}
}
;
您还没有为 getRange(3, 3)
定义 sheet,因此您的代码无声地失败了。尝试 运行 脚本的那一部分,您就会明白我的意思。
function test() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var test = spreadsheet.getRange(3, 3).getValues();
Logger.log(test); // Error: Cannot find method getRange(number,number).
}
您可以通过定义 sheet 轻松解决此问题。我不确定你是否想使用活动 sheet 或不,但我假设你这样做。所以您的代码可能看起来像这样,而且它有效。
/** @OnlyCurrentDoc */
function onEdit(e) {
//This IF statement ensures that this onEdit macro only runs when cells A1:A2 are edited
if (
e.source.getSheetName() == "Finances 2020" &&
e.range.getColumn() == 1 &&
1<=e.range.getRow()<=2
) {
//Cells A1:A2 are checkboxes. This section ensures the following script only runs when the checkbox is checked (and not when unchecked).
var checkboxtest = e.range.getValue()
if (checkboxtest == true) {
//Some script to test if the above works (by grabbing some text from a cell near by and pasting it into another):
var sheet = SpreadsheetApp.getActiveSheet();
var test = sheet.getRange(3, 3).getValues();
sheet.getRange('A3').setValues(test);
}
}
}
我无法让下面的工作。任何帮助,将不胜感激。我 post 编辑了一个类似的 post,我得到了一些很大的帮助,但是当我在这里应用相同的概念时,我无法让它工作。谢谢。
/** @OnlyCurrentDoc */
function onEdit(e) {
//This IF statement ensures that this onEdit macro only runs when cells A1:A2 are edited
if (
e.source.getSheetName() == "Finances 2020" &&
e.range.getColumn() == 1 &&
1<=e.range.getRow()<=2
) {
//Cells A1:A2 are checkboxes. This section ensures the following script only runs when the checkbox is checked (and not when unchecked).
var checkboxtest = e.range.getValue()
if (checkboxtest == true) {
//Some script to test if the above works (by grabbing some text from a cell near by and pasting it into another):
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var test = spreadsheet.getRange(3, 3).getValues();
spreadsheet.getRange('A3').setValues(test);
}
}
}
;
您还没有为 getRange(3, 3)
定义 sheet,因此您的代码无声地失败了。尝试 运行 脚本的那一部分,您就会明白我的意思。
function test() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var test = spreadsheet.getRange(3, 3).getValues();
Logger.log(test); // Error: Cannot find method getRange(number,number).
}
您可以通过定义 sheet 轻松解决此问题。我不确定你是否想使用活动 sheet 或不,但我假设你这样做。所以您的代码可能看起来像这样,而且它有效。
/** @OnlyCurrentDoc */
function onEdit(e) {
//This IF statement ensures that this onEdit macro only runs when cells A1:A2 are edited
if (
e.source.getSheetName() == "Finances 2020" &&
e.range.getColumn() == 1 &&
1<=e.range.getRow()<=2
) {
//Cells A1:A2 are checkboxes. This section ensures the following script only runs when the checkbox is checked (and not when unchecked).
var checkboxtest = e.range.getValue()
if (checkboxtest == true) {
//Some script to test if the above works (by grabbing some text from a cell near by and pasting it into another):
var sheet = SpreadsheetApp.getActiveSheet();
var test = sheet.getRange(3, 3).getValues();
sheet.getRange('A3').setValues(test);
}
}
}