excel - 有没有办法模拟系统日期?
问题描述
所以我有一个只想在工作日运行的宏。我创建了一个宏(我希望)将检查它是星期几并将其放入单元格中。这就是我所拥有的:
Private Sub dayCheck()
If Weekday(Now) = vbMonday Or vbTuesday Or vbWednesday Or vbThursday Or vbFriday Then
Dim BlankRow As Long
BlankRow = Range("A65536").End(xlUp).Row + 1
Cells(BlankRow, 1).Select
Selection.Value = Date
Selection.Offset(0, 1).Value = Time
Selection.Offset(0, 2).Value = WeekdayName(Weekday(Now))
Selection.Offset(0, 3).Value = Environ("Username")
ElseIf Weekday(Now) = vbSaturday Or vbSunday Then
Dim time1, time2
Do
time1 = Weekday(Now)
time2 = vbMonday
Do Until time1 = time2
DoEvents
time1 = Now()
Loop
Loop
End If
Application.OnTime TimeValue("12:00:00"), "dayCheck"
End Sub
我的问题是我没有更改系统日期的管理员权限。有没有办法通过宏来模拟这个?
解决方案
您可以通过在 excel 中格式化 now() 函数的一般或数字输出来模拟日期代码,只需加 1 以增加日期。小数点右边的数字表示从午夜到第二天的时间百分比。
今天的日期时间代码是:43412.37786
明天是 43413.37786
因此,您可以通过创建一个 for 循环来回答有关测试代码的问题:
Dim Today
Today = Now
For Days = Today To Today + 7 'Tests today through next Thursday.
If Weekday(Days) = ...
Next Days
但是达伦的回答看起来可以解决您的问题,所以我可能会同意。
推荐阅读
- css - 如何在ionic4的类中调用变量?
- c# - 获取 dll 的路径 - 原始路径,而不是阴影程序集
- java - java cmd进程中如何按顺序执行多个命令
- java - 带有流弹簧引导的 DTO 映射
- java - 如何让处理在文本文件中获取数组的一项并对其做出决定
- image - 取消选择时停止 Gimp 合并图层
- angular-calendar - 角日历 | 需要一个默认的滚动视图到 8AM-11PM 在日/周中具有固定的标题
- django - 如何通过按下按钮更新 Django 中的页面
- oracle - 无法在 Oracle SQL Developer v19.0.1 中创建 PRIVATE TEMPORARY TABLE(错误:ORA-00905)
- go - 我应该在哪里存储服务注册服务器的端点?