VBAのランタイム1004エラーに問題があります。私は時間登録ツールを作って、特定のアクションに必要な時間を測定しました。奇妙なことは、コードが10回中9回完璧に動作することです。 10回のうち1回だけ、このランタイムエラーが発生します。私はこの問題の原因を見ることができません!私は別のことはしませんが、まだこのエラーが発生しています....VBAランタイム1004エラー
私はgoogleを実行し、このランタイムエラーをApplication.Ontime関数と組み合わせて検索しましたが、そうすべき?下のコードは、私が順番にネット上のどこかで見つけたコードです。コマンドボタン(それぞれ特定のアクティビティー用)を持つワークシートがあり、一度押すとStartTimerプロシージャーが呼び出され(別のモジュールで)、もう一度押すとStopTimerプロシージャーが呼び出されます(別のモジュールで)。 StopTimerサブでエラーが発生することがあります。
Public StartTime As Single
Public FinalTime As Single
Sub starttimer()
Application.OnTime Now + TimeValue("00:00:01"), "nexttick"
End Sub
Sub Nexttick()
Sheet1.Range("y2").Value = Sheet1.Range("y2").Value + TimeValue("00:00:01")
starttimer
End Sub
Sub Stoptimer()
With ThisWorkbook.Worksheets("Home")
Application.OnTime Now + TimeValue("00:00:01"), "nexttick", , False
End With
Sheets("Log").Range("c10000").End(xlUp).Offset(1, 0) = Format(Sheet1.Range("y2").Value, "h:mm:ss")
Sheets("Home").Range("y2").Value = 0
End Sub
私のナットは、特にそれがほとんどの時間のために働いています!誰かが私を助けてくれることを願っています:)
ありがとうございます!
バート
Code thats generating the error
ありがとうマクロマン!うーん、セルの値(y2)は、プロシージャの開始時刻ではなく、秒数です。タイマーを開始するために使用される「今」がタイマーを停止するために使用される「今」とはかなり異なっている(2つの間の差はセルy2に格納されている)ので、最も早い時刻の値がどのように等しいかわからない。したがって、これが当てはまる場合、コードは決して動作しません。私はあなたが正しいと思うが、丸めに問題があると思う...しかし、あなたの例のようにセルを参照することは残念なことに: –
@BartKoolhaas更新された回答を参照してください –
右:私は、まあ、何とかしても、タイマーは秒単位でカウントされることはなくなりましたが、ストップウォッチのようにレースをしていますので、IFのステートメントを使ってStartTime変数を更新するだけですその0(つまり新しい)。これはまた動作しません.. :( –