Javascript .setValue()不适用于Google Sheets脚本

Javascript .setValue()不适用于Google Sheets脚本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我一直在为我在谷歌工作表上写的一段脚本而挣扎。脚本的目的是监视给定单元格的输入值(来自键盘),并验证输入是否符合数据输入标准 例如,所有输入值必须遵循标准XX-XX-X。例如,A5-03-1是可以接受的,而B555-01-1不是。(第一个组件是4位数字,而不是2位。)当输入值不符合标准时,我使用.setValue()命令来删除条目 Sheet.getRange(active cell).setValue(""); .setValue()后面还有一个消息框: Browser.msgBox("Ex

我一直在为我在谷歌工作表上写的一段脚本而挣扎。脚本的目的是监视给定单元格的输入值(来自键盘),并验证输入是否符合数据输入标准

例如,所有输入值必须遵循标准
XX-XX-X
。例如,
A5-03-1
是可以接受的,而
B555-01-1
不是。(第一个组件是4位数字,而不是2位。)当输入值不符合标准时,我使用
.setValue()
命令来删除条目

Sheet.getRange(active cell).setValue("");
.setValue()
后面还有一个消息框:

Browser.msgBox("Expecting format ''XX-XX-X''. \\n Please re-enter data.");
此代码的逻辑语句工作正常。工作不正常的是
.setValue()
。有时它会根据需要删除条目,但有时无效条目会保留。但是,消息框始终会正确显示。这两个活动处于同一逻辑测试中

此外,我已授权包含
setValue()
的脚本。但是我每天都会收到关于这张表的错误的电子邮件,其中的错误是“执行该操作需要授权”


最后--我还有其他用途,将数据输入到这张表中。所有用户都已授予对脚本的访问权限。

我不确定为什么
setValue()
函数不起作用,但请在使用
getRange()
后尝试使用
clear()
修复标记-请不要使用不相关的标记Hanks Tim!我不是想用一个不相关的词。。。我知道Excel VBA是一个与Google Sheets脚本完全不同的域。我使用标签的依据是两者都是电子表格。。。我的错!我有最新消息!函数clear()也偶尔工作。但是,当我注释掉生成消息框的脚本时,setValue()和clear()开始一致地工作。Browser.msgBox()和setValue()函数之间是否存在某种交互作用???我不熟悉Browser.msgBox(),因此我无法给您一个明确的答案,但它们似乎没有关联。您可以尝试在这两个函数之间使用flush()函数。也许这会解决问题??谢谢Calvin,我在.setValue操作之后和Browser.msgBox()之前添加了“SpreadsheetApp.flush();”;在此更改之后,.setValue()始终有效,但msgBox是零星的!有时会出现,有时不会。很奇怪。