Это должно сработать:
Public Sub RunSubInXSeconds(secondsToWait As Long, nameOfFunction As String)
Application.OnTime Now + secondsToWait/(24# * 60# * 60#), nameOfFunction
End Sub
Хотя вы должны быть немного осторожнее с OnTime, особенно если вы собираетесь настроить его на ожидание в течение длительного периода времени ... Например. если вы закроете рабочую книгу до того, как истечет таймер и сработает подпрограмма, вы можете открыть свою рабочую книгу для ее запуска. Смущает, если вы этого не ожидаете!