こんにちは仲間のVB開発者/ユーザー/愛好家。元気ですか?
2つのボタンがあるユーザーフォームがあります。
- 始める
- 止まる
を押すと、特定の列Start
の形式で現在の時刻を記録したいと思います。dd/mm/yy hh:nn:ss
次に、Stop
ボタンを押すと、その隣のセルにもう一度時間を記録したいと思います。
次にもう一度押すStart
と、最初のセルの現在のレコードの下に記録したいと思います。基本的に、特定のタスクにかかる時間を確認するためにデータを記録するタイマーを作成しています。
エクセルファイルを投稿し、必要に応じて詳細情報を提供します。
提供された助けに感謝します。
現在のコード
Public runTimer As Double
Public startTime As Date
Dim counter As Date
Sub setStart()
counter = 0
startTime = Now
runTimer = Now + TimeSerial(0, 0, 1)
Application.OnTime runTimer, "setStart", , True
Set myTime = Sheet4.Range("F1")
Set timeRng = Sheet4.Range("C8:C100")
i = WorksheetFunction.CountA(timeRng)
i = i + 1
Cells(i, "C") = myTime
Sheet4.Cells(i, "C").NumberFormat = "yyyy/mm/dd HH:mm:ss"
If i >= 2 Then
Cells(i, "D8") = Cells(i, "C8") - Cells(i - 1, "C8")
Sheet4.Cells(i, "C").NumberFormat = "yyyy/mm/dd HH:mm:ss"
End If
Application.EnableEvents = False
End Sub
Sub setStop()
Application.OnTime runTimer, "setStop", , True
Set myTime = Sheet4.Range("F1")
Set timeRng = Sheet4.Range("D8:D100")
i = WorksheetFunction.CountA(timeRng)
i = i + 1
Application.EnableEvents = False
Cells(i, "D") = myTime
Sheet4.Cells(i, "D").NumberFormat = "yyyy/mm/dd HH:mm:ss"
End Sub
フィードバックと提案をありがとうございます。
これらは両方ともうまく機能します。コード内の特定のワークシートにデータを記録する際にまだ問題があります。現在のワークシートを使用したくありません。シート1にして、セル「A2」ではなくセル「A8」で記録を開始したいのですが。
ありがとう。