返回列表 上一主題 發帖

請各位先進幫忙 改我的VBA

請各位先進幫忙 改我的VBA

之前朋友幫我寫的VBA
因為數據一有變化就會記錄
所以數據有時多有時少
我想每隔10秒記錄1次
但是我又是門外漢
所以想請各位先進幫幫忙   謝謝

Private Sub CommandButton1_Click()

End Sub

Private Sub Worksheet_Calculate()

If TimeValue(Format(Now, "hh:mm:ss")) <= TimeValue("08:44:00") Then
  
    Range("A2:J50000") = ""
   
Else

            
If TimeValue(Format(Now, "hh:mm:ss")) >= TimeValue("08:45:00") And TimeValue(Format(Now, "hh:mm:ss")) <= TimeValue("13:45:00") Then
   ar = Array([A1], [B1], [C1], [D1], [E1], [F1], [G1], [H1], [I1], [J1])
   [A65536].End(xlUp).Offset(1, 0).Resize(, 10) = ar
   
End If
End If
End Sub

Worksheet_Calculate()   <==== 問題在這邊, dde 數據一改變就會觸發下面的程式碼
If TimeValue(Format(Now, "hh:mm:ss")) <= TimeValue("08:44:00") Then
  
    Range("A2:J50000") = ""
   
Else

            
If TimeValue(Format(Now, "hh:mm:ss")) >= TimeValue("08:45:00") And TimeValue(Format(Now, "hh:mm:ss")) <= TimeValue("13:45:00") Then
   ar = Array([A1], [B1], [C1], [D1], [E1], [F1], [G1], [H1], [I1], [J1])
   [A65536].End(xlUp).Offset(1, 0).Resize(, 10) = ar
   
End If
End If


所以你要的間格時間無效
清空後, 就不會一直跑(或著 你可以 在原代碼中 增加時間判斷 10sec,60sec 要執行的事項)

TOP

今天終於可以用了

太感謝您了GBKEE

還有oobird
也要謝謝您

TOP

測試ok

可是盤中真的一次記錄3筆
我明天再試試

謝謝GBKEE

TOP

應該不是錯覺

請看今天記錄的圖

Noname.png (36.33 KB)

Noname.png

TOP

回復 26# junsean
一次記錄3筆重複的數據 不會呀! 會不會是你的數據沒有變動的錯覺.
已加上時間欄,你現在到23:45:00前可測試看看.
   
  1. Sub yy()
  2.     With Sheet1
  3.         If Time <= TimeValue("08:44:50") Then
  4.            .Range("A3:G50000") = ""
  5.            Application.OnTime TimeSerial(8, 45, 0), "yy"
  6.         End If
  7.         If Time >= TimeValue("08:45:00") And Time <= TimeValue("23:45:00") Then
  8.             ar = Array(.[A2], .[B2], .[C2], .[D2], .[E2], .[F2], .[G2], Time)
  9.             .[A65536].End(xlUp).Offset(1, 0).Resize(, 8) = ar
  10.             Application.OnTime Time + TimeSerial(0, 0, 10), "yy"
  11.         End If
  12.     End With
  13. End Sub
  14. Sub xx()
  15.     With Sheet2
  16.         If Time <= TimeValue("08:59:50") Then
  17.             .Range("A3:J50000") = ""
  18.             Application.OnTime TimeSerial(9, 0, 0), "xx"
  19.         End If
  20.         If Time >= TimeValue("09:00:00") And Time <= TimeValue("23:32:10") Then
  21.             ar = Array(.[A2], .[B2], .[C2], .[D2], .[E2], .[F2], .[G2], .[H2], .[I2], .[J2], Time)
  22.             .[A65536].End(xlUp).Offset(1, 0).Resize(, 11) = ar
  23.             Application.OnTime Time + TimeSerial(0, 1, 0), "xx"
  24.         End If
  25.     End With
  26. End Sub
複製代碼

TOP

附檔

麻煩您了

今天大部分是
一次記錄3筆重複的數據

DDE.rar (105.62 KB)

TOP

回復 24# junsean
附檔來看看

TOP

今天試用  可以用了
可是每次都記錄3筆(同樣的數據)
好奇怪
不是每次記錄1筆嗎

請各位大大  幫幫小弟  謝謝

TOP

感恩GBKEE
還有oobird
謝謝你們

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題