Я создал файл Excel с парой элементов ActiveX.Пока что файл работает так, как задумано, теперь я работаю с «пользовательскими ошибками», которые могут возникнуть в повседневной работе.Для последующего использования элементы activeX (Toggle-, Command- & SpinButtons) очень важны, поэтому я создал несколько подпрограмм для восстановления каждого элемента.Они работают как положено.
Проблема: что теперь, если кто-то удалит кнопку?Я пытался работать с If-Statements (если> element <ничего тогда ...), но это не сработало.Следующим подходом было «При ошибке GoTo».Итак, я создал ErrorHandler и, как обычный код, он работает так, как задумано.Обработчик создает SpinButton с нужным именем.Если я встраиваю ошибку в свой код (a = 1/0), то обработчик выполняет свою работу, но это просто «in vitro». </p>
In vivo, если моего желаемого> элемента <нет, мойкод заканчивается ошибкой (компиляция error_ метод или объект не найден), но мой обработчик ничего не делает, несмотря на то, что это его единственная цель. </p>
Мой код:
Sub Cal_SpinButton_Nr()
Subroutine:
On Error GoTo CreateObject:
With Tabelle5.SpinButton_Nr
.Left = 198
.Height = 65.25
.Top = 1.5
.Width = 54.75
.Orientation = fmOrientationVertical
.BackColor = &H8000000F
.ForeColor = &H80000012
End With
Exit Sub
CreateObject:
Tabelle5.OLEObjects.Add("Forms.SpinButton.1").Name = "SpinButton_Nr2"
'Resume Subroutine
End Sub
Опция Explicit включенаи подпрограмма не содержит переменных.Пока есть объект (SpinButton_Nr), он работает.Без объекта я получаю ошибку компиляции.
Прямо сейчас "Resume Subroutine" отключен, чтобы избежать бесконечного цикла (я выучил свой урок, сначала отключив "exit sub" и нажав F5 ...), обычная функцияэто запустить тот же саб снова, чтобы поставить новый объект в нужном месте.По причинам («in vitro») тестирования новый объект называется _Nr2, позже это просто _Nr.
Теперь вопрос: почему ошибка компиляции не покрывается заявлением «on error»?Как можно изменить код для правильной работы?
Синтаксис должен быть следующим: «Если> элемент <существует, задайте свойства, если <code><element> нет, то создайте его и установите свойства впоследствии.