google-apps-script - 当函数仅限于特定列时,为什么撤消会触发我的 onEdit()?
问题描述
我将这个 onEdit() 函数限制为在某些工作表的第一列中进行修改。我的问题是,当我在 onEdit() 范围之外按“撤消”或“Ctrl + Z”时,“撤消”会触发该函数并使用 .clearContent() 清除某些行。
为什么“撤消”这样做?我没有修改第一列。日志如下所示:
[18-10-03 10:41:09:166 VET] onEdit
[18-10-03 10:41:09:167 VET] event {authMode=LIMITED, range=Range, source=Spreadsheet, user=name.lastname@company.com} - A3:A22 - true
这是我的功能:
function onEdit(e){
init()
if (e.range.getSheet().getName() == htSheet.getName()) {
if ((e.range.getColumn() == 1) && (e.range.getRow() >= StartRowHT) && (typeof e.value == "string")){
Logger.log("fired")
onSelectTask(e)
} else if ((e.range.getColumn() == 1) && (typeof e.value != "string")){
//clean row
var rowIndex = e.range.getRow()
range1 = "B" + rowIndex + ":G" + rowIndex
range2 = "I" + rowIndex + ":ZZ" + rowIndex
htSheet.getRangeList([range1, range2]).clearContent()
}
Logger.log("onEdit")
Logger.log("event %s - %s - %s", e, e.range.getA1Notation(), typeof e.value != "string")
}
}
function init() {
taskRange = htSheet.getRange(StartRowHT, 1, (calendar.getLastRow() - StartRowCal + 1))
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sheetname.getRange("H4:H1000"), true).build()
taskRange.setDataValidation(rule)
}
预先感谢您的帮助。
解决方案
推荐阅读
- python - 'NoneType' 对象在 SQLAlchemy Query().filter_by().all() 对象中没有属性 '_autoflush'
- gcc - 如何使用 nasm、gcc、ld 和 objcopy 编写 CMakeLists.txt?
- excel - VBA“需要对象”错误,但在新工作表中有效
- node.js - 将日历事件从服务器返回到客户端
- ios - 何时在 Firebase 上启用离线功能调用完成块?
- swiftui - 我怎样才能最好地创建一个按钮来显示在我的应用程序中编写的部分代码(学习上下文)?(斯威夫特用户界面)
- ssh - SSH 复制 2 天以上的文件,同时保留文件属性和文件夹结构
- flutter - 未处理的异常:类型“int”不是 DropdownButton 上“String”类型的子类型
- react-native - 如何在 react-native 中制作圆形滑块以在两侧旋转?
- r - R ggplot条形图重新排序发生在未知组中