我是一名教师,正在努力创建一个Jeopardy风格的游戏,在我的课堂上使用。我对Google脚本和一般的编码非常陌生。我正在使用透明的图像为每个类别的点值创建 "按钮",并附加脚本以在点击时将单元格的背景颜色改为灰色,以表明哪些点值已经被使用,如以下所示 本例.
我想做的是能够为每个 "按钮 "分配相同的脚本,这样它就会自动检测到哪个单元格根据被按下的按钮变成灰色。我一直没有解决这个问题,而是为每个按钮创建了一个单独的脚本(类别1,100分;类别2,100分;类别3,100分,等等等等)。这很复杂,也很耗时,看来一定有更好的方法!
function colorCat1100(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var colors = [
["#e0e0e0"]
];
var cell = sheet.getRange("A3:A3");
cell.setBackgrounds(colors);
}
function colorCat2100(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var colors = [
["#e0e0e0"]
];
var cell = sheet.getRange("B3:B3");
cell.setBackgrounds(colors);
}
function colorCat3100(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var colors = [
["#e0e0e0"]
];
var cell = sheet.getRange("C3:C3");
cell.setBackgrounds(colors);
}
function colorCat4100(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var colors = [
["#e0e0e0"]
];
var cell = sheet.getRange("D3:D3");
cell.setBackgrounds(colors);
}
function colorCat5100(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var colors = [
["#e0e0e0"]
];
var cell = sheet.getRange("E3:E3");
cell.setBackgrounds(colors);
}
...而这只是第一行的积分值。我将非常感激你们这些优秀的人可能提供的任何帮助! 先谢谢你们了!
图片可以插入到一个工作表中,或者(1)属于一个单元格(Insert > Image > Image in cell
或使用 图像),并且不能附加脚本,或者(2)不属于特定的单元格(Insert > Image > Image over cells
),可以附加脚本。
假设您使用的是 Image over cells
你不能将参数传递给一个附加在图片上的函数。考虑到插入的图像是通过 Image over cells
不属于特定的单元格,被调用的函数无法通过 getCurrentCell() 或 getActiveRange().
感谢最近添加的 onSelectionChange(e) 触发器,你可以使用单元格本身作为 "按钮":当一个单元格被点击时,你可以运行脚本,而不是将脚本附加在 over-cell images
.
这个想法是,当选择的单元格发生变化时,脚本将运行并检查当前选择的单元格是否是带有 "按钮 "的单元格之一(这个条件是为了避免所有单元格在被点击时改变背景,而只是 "按钮 "的单元格)。如果是,则单元格的背景将被改变。
只要复制并粘贴下面的代码即可。
function onSelectionChange(e) {
var buttonRanges = ["A3", "B3", "C3"]; // Cells with "buttons" (please change)
var range = e.range;
if (buttonRanges.includes(range.getA1Notation())) {
range.setBackground("#e0e0e0");
}
}
当然,你也可以把图片添加到单元格中,但不使用 "按钮"。Image over cells
你应该添加内联单元格,或者通过 Image in cell
或与 =IMAGE
.
A3
, B3
和 C3
. 请根据您的喜好进行更改。