当某些单元格被编辑时,我希望弹出一个消息框。例如,我有一个用于开始时间的列,它们需要有MM/DD/YYYY HH:MM:SS格式(在军事时间中)。当有人在这里输入日期/时间时,我想要一条消息弹出,上面写着:
使用以下格式: MM/DD/YYYY :MM:SS(在军事时间)。
当我尝试使用消息框下面的脚本时,无论编辑哪个单元格,都会一次又一次地弹出。我希望当用户在该单元格中输入某些内容时弹出,以便他们知道正确的格式。我希望他们能够点击OK,消息就消失了,直到编辑下一行和相应的列单元格。
function onEdit(e) {
var sheet = SpreadsheetApp.getActive().getSheetByName("Events");
var data = sheet.getDataRange().getValues();
var headerRow = 1;
var i = 1;
for (i = 1; i < data.length; i += 1) {
var row = data[i];
var startTime = sheet.getRange(headerRow + i, 3).getValue();
if (row[0] !== "" && startTime !== "") {
Browser.msgBox('Use the the following format: MM/DD/YYYY HH:MM:SS (in military time)', Browser.Buttons.OK_CANCEL);
}
}
}发布于 2015-09-11 20:34:38
我不确定这段代码能完全回答你的问题。如果没有,请告诉我。
function onEdit(e) {
Logger.log('onEdit ran!');
var columnOfCellEdited = e.range.getColumn(); //Get the column of the cell being edited
Logger.log('columnOfCellEdited: ' + columnOfCellEdited);
if (columnOfCellEdited !== 1) {
return; //If the user is not editing column one, then quit here
};
var valueOfThisCell = e.value; //Only available if the edit is to a single cell
var rowOfCellEdited = e.range.getRow();
Logger.log('valueOfThisCell: ' + valueOfThisCell);
Logger.log('rowOfCellEdited: ' + rowOfCellEdited);
var sheet = SpreadsheetApp.getActive().getSheetByName("Events");
var startTime = sheet.getRange(rowOfCellEdited, 3);
Logger.log('startTime: ' + startTime);
var formatOfTheDate = 'ToDo get the format';
if (formatOfTheDate !== "MM/DD/YYYY HH:MM:SS") {
Browser.msgBox('Use the the following format: MM/DD/YYYY HH:MM:SS (in military time)', Browser.Buttons.OK_CANCEL);
};
}可以使用e事件对象获取有关正在编辑的当前单元格的信息。
https://stackoverflow.com/questions/32531200
复制相似问题