У меня есть переменные общедоступного рабочего листа, которые сначала инициализируются при открытии книги. У меня есть кнопка, которая делает это по существу:VBA Глобальные переменные больше не объявляются после удаления рабочего листа
Dim Response As Variant
Response = MsgBox("Are you sure you want to delete this worksheet?", vbYesNo + vbExclamation, "Confirm Action")
If Response = vbNo Then
GoTo exit sub
End If
'Save workbook prior to deletion as a precaution
ThisWorkbook.Save
ActiveSheet.Delete
По какой-то причине после этого не работает, эти переменные рабочий лист больше не объявлено, и я должен переинициализировать их каждый раз. Я попытался добавить мой вызов макроса InitVariables после .Delete, и он все еще не работает.
Любая причина, по которой это может произойти?
Я вижу. Есть ли способ, каким образом я могу вставить мой вызов InitVariables во время процесса перекомпиляции? – KingKong
Невозможно перехватить вызов компиляции, и, конечно же, не из VBA. Что у вас есть в ваших глобалах? Если вы можете воссоздать их с помощью вызова «InitVariables», не проще ли просто вызвать его до запуска вашего кода? – Comintern
Да, это в значительной степени то, что я делаю. Я просто не хотел вспоминать, что каждый раз, когда я пишу новый суб или функцию. – KingKong