如何使电子表格公式每天执行

时间:2018-01-09 11:44:03

标签: sql google-sheets datediff google-query-language

我有以下公式从同一天 UniqueLast 获取同一天的数据:

# forcing SSL
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

它运行正确,但有时执行此公式的表会保留已经过时的前一天的结果。如何在00:00制定运行公式的规定?

2 个答案:

答案 0 :(得分:0)

创建一个宏函数并包含上面的表达式。使用VBExpress并创建一个脚本(.exe)来打开电子表格并运行宏。将其添加到Windows计划任务中。

在宏中调用的函数

Function getNextRunTime() As Date
Dim curDate As Date
Dim curTime As Date
Dim chkTime As Date
Dim runTime As Date

curDate = Date
curTime = TimeValue(Now)

runTime = curDate + TimeValue("15:59:00")
chkTime = curDate + curTime

If chkTime > runTime Then 'schedule for next day'

runTime = DateAdd("d", 1, runTime)
End If

getNextRunTime = runTime

End Function

答案 1 :(得分:0)

QUERY函数的SQL语句参数应该是TEXT类型的单个值。现在()它无效的Google查询语言功能。 Google表格magnes在背景上的日期为具有不同EPOCH日期的数字,因此我们应将其转换为具有正确格式的日期。尝试

=QUERY(
UniqueLast!$A$3:X,
"select * where dateDiff(A, date """&TEXT(now(),"yyyy-mm-dd")&""")=0"
)

删除了IFERROR,以便于检查提议的更改是否适用于OP数据。一旦你确定它就可以添加它。