google-apps-script - 如果 2 个单元格匹配,Google 脚本会创建警报
问题描述
当 2 个单元格的值相同时,我想创建一个带有 YES_NO 问题的警报。1 个单元格将有当前时间 [=now()],而另一个单元格有一个到期时间。当 2 次匹配时,我可以有一个 ui 警报吗?这是我到目前为止编写的代码,即使时间不匹配,它目前也可以工作。
function LiDCOcheck(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ui = SpreadsheetApp.getUi();
var buttons = ui.ButtonSet.YES_NO;
var bed = ss.getRange("C2").getValue();
var due = ss.getRange("D2").getValue();
var time = ss.getRange("A2").getValue();
if (due=time){
var lidco = ui.alert("It hsa been 24 hours since the LiDCO in Bed " + bed + " was calibrated. Is it still required?", buttons);
if (lidco == ui.Button.YES){
ss.getRange("D2").setBackground('#6aa84f');}
else{
ss.getRange("D2").setValue('Not Required')}}
}
谢谢
解决方案
请注意,在您的原始脚本中,单个等号是一个赋值,并且需要一个双等号进行比较。
if (due=time) {
是错误的,而
if (due==time) {
更好。但是,它仍然不起作用!
我通常发现,在处理电子表格中的日期或时间时,最好将其转换为 javascript Date 对象以进行大多数操作,包括比较。
var due = new Date(ss.getRange("D2").getValue());
var time = new Date(ss.getRange("A2").getValue());
简单的比较只是比较getTime()
函数的结果,也就是时间,单位是毫秒。
if (due.getTime()==time.getTime()){
}
推荐阅读
- javascript - 来自 puppeteer 文档的代码在 UnhandledPromiseRejectionWarning 之前不起作用
- java - 如何测试副屏?
- javascript - Javascript - 在多个文件中存储类方法?
- node.js - 为什么在记录器上调用 .close() 时 winston-syslog 重新打开连接
- python-3.x - 在 Python 中不能用 pandas 读取 excel 文件删除 na
- react-native - 不变违规:TurboModuleRegistry.getEnforcing(...): 'DevSettings' 找不到
- wpf - SyncFusion SfRichTextBoxAdv 打字时出现奇怪的悬念
- javascript - 来自 Fauna DB 的反向数据
- php - $this->request->getData() 升级到 CakePHP 4.0 后为空
- javascript - 如何使用 nuxtjs 在 vue 模板上添加标题和脚本