10秒ごとに自動的に式を更新するためのタイマーを実装したスプレッドシートがあります。別のスプレッドシートを開くまで、すべてがうまくいっていました。私の前提は、まだ間違ったシートにTimer()
を実行しようとしていたということでした。だから、私は絶対的な呼び出しに切り替えようとしました。Subへの完全修飾パスを持つApplication.OnTimeを呼び出しますか?
Dim TimerActive As Boolean
Sub StartTimer()
Start_Timer
End Sub
Private Sub Start_Timer()
TimerActive = True
Application.OnTime Now() + TimeValue("00:00:10"), "timetrack.xlsm!Tracker.Timer"
End Sub
Sub Stop_Timer()
TimerActive = False
End Sub
Sub Timer()
Dim tracker As Worksheet
Set tracker = Workbooks("timetrack.xlsm").Sheets("Tracker")
tracker.Range("O1").Value = "Timer Stopped"
'On Error Resume Next
If TimerActive Then
tracker.Range("O2").Value = Time
Application.OnTime Now() + TimeValue("00:00:10"), "timetrack.xlsm!Tracker.Timer"
tracker.Range("N:N").Calculate
End If
tracker.Range("O1").Value = ""
End Sub
具体的には、私はApplication.OnTime
ライン上のエラーを取得しています::!\ OneDrive ...ドキュメント\ timetrack:
マクロ '' Sを実行することはできませんここに私の完全なコードです。 xlsm '!Tracker.Timer'。このブックでマクロが使用できないか、すべてのマクロが無効になっている可能性があります。
エラーに表示されるパスは正しいです。なにが問題ですか?奇妙なのは、問題なしでStartTimer()
サブで実行しているようです。
私は、問題を再現することはできませんよ。コードを使用しているブックがその背後で作業している間に、別のブックを開いて作業することができます。 (Excel 2016、Win 10) – OldUgly