Событие изменения ActiveX Combobox инициируется ВТОРОЙ независимой рабочей книгой и ошибкой времени выполнения 9 - PullRequest
0 голосов
/ 25 мая 2019

У меня есть рабочая тетрадь с несколькими листами. В основном один расчетный лист и несколько таблиц базы данных. На листе вычислений есть два поля со списком для управления вводом пользователем двух ячеек, используемых для вычислений (на основе выбора). Результаты расчета отображаются в области заголовка рабочего листа (а не в одной из связанных ячеек комбинированного списка). Одно из событий в выпадающих списках срабатывает при каждом изменении ячейки отдельной уникальной рабочей книги. Я попытался закрыть все рабочие книги, перезагрузить компьютер и запустить новую рабочую книгу с пустыми рабочими листами, а затем открыть свою рабочую книгу. Рабочая книга «application», содержащая выпадающий список, по-прежнему вызывает событие change из новой рабочей книги, даже если между рабочими книгами нет взаимосвязи (не может быть, она была недавно создана).

  1. перезагрузка ПК
  2. Перезапуск Excel
  3. перехват кода изменения комбобокса (кажется, показывает, что он фактически срабатывает два раза подряд).
Private Sub Size_CB_Change()
    Worksheets("Calculation").ProcessConnection_CB.ListFillRange = "ProcessConnection"
End Sub

Это может не быть хорошей практикой, но я переназначал источник списка (именованный диапазон Excel), потому что у меня были проблемы с выпадающим списком из списка. Итак, теперь я очищаю и переназначаю именованный диапазон между каждым использованием. Однако это не имеет ничего общего с отдельной новой книгой (которая была новой и пустой, но все еще вызывает событие "Size_CB_Change".

Excel выбрасывает «Ошибка выполнения 9, нижний индекс выходит за пределы диапазона», а «Отладка» идентифицирует подпрограмму Sub Size_CB_Change () как место, где она висит.

...