我正在尝试制作一个Google脚本,以便在表单编辑时运行但不确定当一个人通过Google编辑网址在以后用新的答案编辑他们的Google表单时,它是onEdit还是onSubmit。
我需要抓住他们的响应行并清除单元格AO,AP,AQ和AR的内容。
我知道这应该是一个很大的混乱,但我正在努力。以下是我到目前为止的情况:
function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var editRange = sheet.getActiveRange();
var editRow = editRange.getRow();
var editCol = editRange.getColumn();
var range = sheet.getRange("A2:AL");
var rangeRowStart = range.getRow();
var rangeRowEnd = rangeRowStart + range.getHeight()-1;
var rangeColStart = range.getColumn();
var rangeColEnd = rangeColStart + range.getWidth()-1;
if (editRow >= rangeRowStart && editRow <= rangeRowEnd
&& editCol >= rangeColStart && editCol <= rangeColEnd)
{
var ss = e.range.getSheet();
ss.getRange(thisRow,"AO" & i & ":AR" & i) // Get cells in range AO,AP,AQ,AR to clear out
.clearContent();
}
};
答案 0 :(得分:0)
我重新开始了。我有这个脚本工作但不是很需要的方式。我需要它只清除firstdate != secdate
行的单元格(AH)的内容。现在,当一个单元符合标准时,它会清除AH列的所有单元格。
function compareClear() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var firstdate = sheet.getRange("E3:E").getValues();
var secdate = sheet.getRange("AG3:AG").getValues();
if(firstdate != secdate){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("AH3:AH").clearContent();
}
}
答案 1 :(得分:0)
以防万一其他人可能需要帮助解决这个问题:
在Google Docs论坛中有来自Spencer的大量帮助的脚本以及我所做的一些更改,就像一个魅力。它可能不是最漂亮的剧本,但它可以满足我的需要。
function compareClear() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses 1");
var firstdate;
var secdate;
for (var i = 3; i < sheet.getLastRow(); i++) {
firstdate = new Date(sheet.getRange(i, 4).getValue());
secdate = new Date(sheet.getRange(i, 45).getValue());
if(firstdate > secdate){
sheet.getRange(i, 41).clearContent();
sheet.getRange(i, 42).clearContent();
sheet.getRange(i, 43).clearContent();
sheet.getRange(i, 44).clearContent();
}
}
}