我目前可以根据当前日期和时间更改Active X微调器的范围(“Device1”)。确定行号和日期的时间决定了列号。单元格(B3:H3)使用Today()函数返回日期,单元格(A3)每10秒返回当前时间。我已经使用了Offset()函数,但是现在我意识到每次变量fDate或fTime发生变化时,微调器值都需要重置为0。这些是我目前正在使用的替补。理想情况下,只有在fDate和fTime已经从之前的值改变以避免每10秒重置一次值时,我希望能够调用Sub SpinnerReset()。对变量运行宏
也许一种方法来保留以前的值和比较/运行,如果不相等?我不确定这是否可能。
Sub Device1_Change()
Dim fDate, fTime As Integer
'Change fDate based on day'
If Range("B3") = Date Then fDate = 0
If Range("C3") = Date Then fDate = 16
If Range("D3") = Date Then fDate = 32
If Range("E3") = Date Then fDate = 48
If Range("F3") = Date Then fDate = 64
If Range("G3") = Date Then fDate = 80
If Range("H3") = Date Then fDate = 96
'Change fTime based on TimeStamp'
If Range("A3") > TimeValue("09:59:59") And Range("A3") < TimeValue("11:00:00") Then fTime = 0
If Range("A3") > TimeValue("10:59:59") And Range("A3") < TimeValue("12:00:00") Then fTime = 1
If Range("A3") > TimeValue("11:59:59") And Range("A3") < TimeValue("13:00:00") Then fTime = 2
If Range("A3") > TimeValue("12:59:59") And Range("A3") < TimeValue("14:00:00") Then fTime = 3
If Range("A3") > TimeValue("13:59:59") And Range("A3") < TimeValue("15:00:00") Then fTime = 4
If Range("A3") > TimeValue("14:59:59") And Range("A3") < TimeValue("16:00:00") Then fTime = 5
If Range("A3") > TimeValue("15:59:59") And Range("A3") < TimeValue("17:00:00") Then fTime = 6
If Range("A3") > TimeValue("16:59:59") And Range("A3") < TimeValue("18:00:00") Then fTime = 7
If Range("A3") > TimeValue("17:59:59") And Range("A3") < TimeValue("19:00:00") Then fTime = 8
If Range("A3") > TimeValue("18:59:59") And Range("A3") < TimeValue("20:00:00") Then fTime = 9
If Range("A3") > TimeValue("19:59:59") And Range("A3") < TimeValue("21:00:00") Then fTime = 10
If Range("A3") > TimeValue("20:59:59") And Range("A3") < TimeValue("22:00:00") Then fTime = 11
If Range("A3") > TimeValue("21:59:59") And Range("A3") < TimeValue("23:00:00") Then fTime = 12
'Select cell for spinner'
Worksheets("Count").Range("C4").Offset(fTime, fDate).Value = Device1.Value
End Sub
Sub SpinnerReset()
Device1.Value = 0
End Sub
你怎么知道'fDate'或'fTime'何时改变了?你是否想看看'B3:H3'中的单元是否改变,并且更新'fDate'? – BruceWayne
fDate和fTime的当前格式正常工作。由微调器生效的单元格会随着当前时间和日期的更新而改变,但主要问题是一旦新细胞正在生效,微调器仍然继续以前的值。一旦它所影响的单元格发生变化,我希望微调器的值重置。如果你知道更简单的格式来改变受影响的单元格,我会接受想法。 – AvidAdventurer
哪些单元格会发生变化,当它们发生变化时,是否要让宏重新运行? – BruceWayne