我创建了一个“战斗表”电子表格。我想显示一个字段来显示轮到谁了。或者,显示最后编辑电子表格的字段。
电子表格有两张表,一张标有“Player1”,另一张标有“Player2”。
这个想法是每个玩家在玩游戏时都在不同的工作表/选项卡上。一旦进行编辑(在这种情况下,游戏字段中会放置一个“x”),我想要一个单元格(M1)来记录哪个玩家最后开火(或者轮到谁 - 如果可能的话) )在两张纸上。
不幸的是,我删除了我尝试的脚本,但我正在使用 onEdit(e) 以及此脚本的变体:
function timestampIt(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0]; // this will assign the first sheet
var cell = sheet.getRange('A1');
var d = new Date();
d.setHours(d.getHours() +1);
var user = Session.getActiveUser().getUserLoginId();
user = String(user);
user = user.replace('@gmail.com', '');
cell.setValue('Last updated: ' + d.toLocaleString() + ' by ' + user);
}
我不明白当player1放置X时,要更新的表是否是player2。如果是这样,这里有一个在编辑时触发的函数:
function updateLastEditPlayer(e) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const player1Sheet = ss.getSheetByName("Player1");
if (e.range.getSheet().getName() == "Player1") {
const sheet = ss.getSheetByName("Player2");
const cell = sheet.getRange("M1");
let d = new Date();
d.setHours(d.getHours() + 1);
let user = Session.getActiveUser().getEmail();
user = String(user);
user = user.replace('@gmail.com', '');
cell.setValue('Last updated: ' + d.toLocaleString() + ' by ' + user);
} else if (e.range.getSheet().getName() == "Player2") {
const sheet = ss.getSheetByName("Player1");
const cell = sheet.getRange("M1");
let d = new Date();
d.setHours(d.getHours() + 1);
let user = Session.getActiveUser().getEmail();
user = String(user);
user = user.replace('@gmail.com', '');
cell.setValue('Last updated: ' + d.toLocaleString() + ' by ' + user);
}
}