Я провел здесь немного исследований, чтобы попытаться запустить этот код, но у меня все еще есть проблемы.Код приложения.контакт не работает
Я пытаюсь запустить макрос в заданное время. На самом деле это несколько макросов в разное время. Затем этот макрокоманда копирует блок ячеек в другую область на листе.
Я не смогу использовать планировщик окон, поэтому я пытаюсь сделать это таким образом. Я собираюсь без планировщика, мне придется запускать макрос с помощью кнопки. Поэтому мой первый суб это (кнопка примечание на отдельном листе к данным)
Sub Call_save()
Call Sheets("Dashboard").8amsave
Application.OnTime TimeValue("08:10:00"), "Call_8amsave"
Call 9amsave
Application.OnTime TimeValue("09:10:00"), "Call_9amsave"
Call 10amsave
Application.OnTime TimeValue("10:10:00"), "Call_10amsave"
End Sub
Эта кнопка предназначена для затем запустить подводные лодки в заданное время. В подлодках он называет следующие:
Sub 8amsave()
Dim current_data As Variant
current_data = Worksheets("Dashboard").Range("S6:V22").Value
Worksheets("Dashboard").Range("B33:E49").Value = current_data
End Sub
Sub 9amsave()
Dim current_data As Variant
current_data = Worksheets("Dashboard").Range("S6:V22").Value
Worksheets("Dashboard").Range("B54:E70").Value = current_data
End Sub
Sub 10amsave()
Dim current_data As Variant
current_data = Worksheets("Dashboard").Range("S6:V22").Value
Worksheets("Dashboard").Range("B75:E91").Value = current_data
End Sub
Теперь, когда я запускаю кнопку начальной она запускает все подлодки сразу и копирует продает в правильные места, сразу. Это не проблема для меня. Однако в заданное время я получаю сообщение об ошибке, неспособное запустить макрос ... не может найти его или листок, который не может запускать макросы ... или что-то подобное.
Есть ли что-нибудь ослепительно очевидное, что я не хватает? Я как бы работаю над этим, поскольку я так понимаю, что мои знания VBA довольно ограничены. Точка в правильном направлении была бы большой.
Этот код даже не компилируется. Вы не можете запустить имя процедуры с помощью числового. –
Ваши инструкции OnTime также, как представляется, ссылаются на имена процедур, которые не существуют, то есть 'Call_8amSave', в отличие от' 8 amsave'. Переименуйте свои процедуры так, чтобы они соответствовали вызовам в операторе OnTime', и он должен работать. Например, 'Sub Call_8amSave' и т. Д. –
Вызов' Call' совершенно не нужен - если вы хотите выполнить 'MyProcedure', просто скажите' MyProcedure', это вызов процедуры. Операция 'Call' является реликтом старых, старых версий языка, которые остались там для обратной совместимости ... наряду с ключевым словом' Let' для присваивания значений и ключевым словом 'Rem' для ... комментариев. –