作者ckingsu (ckingsu)
看板Office
标题[算表] Do While LOOP & Application.OnTime
时间Thu Jan 23 13:16:50 2025
软体: excel
版本: 2021
Sub atime123()
Range("Aa21") = 0
time0 = Time()
time1 = Time()
Do While Range("Aa21") <> Range("Ab21")
time1 = Time() + TimeSerial(0, 0, 1)
Range("Aa21") = DateDiff("s", time0, time1)
DoEvents
Loop
End Sub
虽有 DoEvents 再执行Application.OnTime程序 还是没办法正确执行 ??
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.36.77.116 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1737609412.A.CFF.html
1F:→ newacc: 你认为怎样是正确执行?OnTime写在哪里? 01/23 17:26
4F:→ ckingsu: Range("Aa21") = DateDiff("s", time0, time1) 01/23 20:39
5F:→ ckingsu: 改用debug.pring, 或用变数取代 01/23 20:40
6F:→ ckingsu: application.ontime 就能正确执行 01/23 20:41
7F:→ ckingsu: 不知为何会如此? 01/23 20:41
8F:→ ckingsu: 我需要储存格动态秒数,不知怎麽改? 01/23 20:42
9F:→ ckingsu: 在不影响其他程序的情况下 01/23 20:42
10F:→ newacc: 我提供的萤幕录影就是你说的储存格动态秒数吧?是由你文 01/24 02:56
11F:→ newacc: 章里的程式码改的,没办法执行的话,需要更详细的程式码 01/24 02:56
12F:→ newacc: 才有办法判断了 01/24 02:56
13F:→ newacc: 你的OnTime是写在哪里?呼叫什麽? 01/24 02:57
14F:→ ckingsu: my = #12:00:10 AM# 01/24 05:48
15F:→ ckingsu: The_Time = Now + my 01/24 05:48
16F:→ ckingsu: Application.OnTime The_Time, "timestock" 01/24 05:49
17F:→ ckingsu: Range("J16").Value = Format(The_Time, "hh:mm:ss") 01/24 05:49
18F:→ ckingsu: 10秒执行一次timestock 01/24 05:50
19F:→ ckingsu: timestock->写一些DDE的资料到储存格(程式码不短就不引出 01/24 05:51
20F:→ ckingsu: on time 在第二个10秒就不动了 ? 01/24 05:53
21F:→ ckingsu: 改 A=DateDiff("s", time0, time1)就会动了 01/24 05:54
22F:→ ckingsu: 我刚又随便写一个简单的on time 测试也是不行 01/24 06:47
23F:→ ckingsu: sub acde123() 01/24 06:49
24F:→ ckingsu: [a1] = [a1] + 1 01/24 06:50
25F:→ ckingsu: sw = #12:00:02 AM# 01/24 06:50
26F:→ ckingsu: aaa = Now + sw 01/24 06:50
27F:→ ckingsu: Application.OnTime aaa, "acde123" 01/24 06:51
28F:→ ckingsu: end sub 01/24 06:51
29F:→ ckingsu: 我又详细测了一次,应该没问题,不过,产生新的问题 01/24 13:27
30F:→ ckingsu: 执行计时器後,切到别的工作表会自动跳出do loop ? 01/24 13:28
31F:→ ckingsu: 在任一储存格输入会计时器终止运行? 01/24 19:23