windows.visible = false, предотвращающий использование именованного диапазона

У меня есть набор пользовательских форм, которые записываются в базу данных (для удобства ввода данных). Две пользовательские формы используют именованный диапазон из базы данных для combobox rowsource:

Application.Workbooks.Open "path\TestDestination.xlsx" Me.ContactCompany.RowSource = "test.CompanyList" 

Это отлично работает, но открывается файл базы данных, даже если я отключу обновление экрана (?). При дальнейшем поиске казалось, что application.screenupdating = false будет именно тем, что я искал. Я изменил эти строки на следующий код:

  Application.Workbooks.Open "path\TestDestination.xlsx" Me.ContactCompany.RowSource = "test.CompanyList" Windows("TestDestination.xlsx").Visible = False'(Also tried activewindow.visible = false) 

Это работает, чтобы скрыть рабочую книгу, но по какой-либо причине делает именованный диапазон (test.CompanyList) непригодным для использования рабочей книгой ввода и возвращает ошибку вне диапазона. Единственное решение, которое я смог найти благодаря обширному поиску, предположил, что, возможно, это связано с добавлением [скрытым] к имени файла, что создает недоразумение (если я правильно понял). Чтобы попытаться обойти это, я вставил эту строку сразу после ее открытия

 ActiveWindow.Caption = TestDestination 

Нет кубиков. Я прошу прощения, если это очевидное решение или если я не объясняю хорошо, я не знаю VBA вообще, я просто изучаю, когда я иду на задание на работу. Любые советы будут очень признательны. Спасибо.

Когда вы говорите базу данных, я понимаю, что вы имеете в виду другой файл Excel, а не что-то вроде Access или MySQL.

Ссылаясь на именованный диапазон, этот способ работает
wrkBk.Names ( "MyNamedRange"). RefersToRange
В примере я разместил числа в именованном диапазоне и отобразил окно сообщения, в котором сумма чисел была спрятана, а рабочая книга источника скрыта.

 Sub Test() Dim wrkBk As Workbook Set wrkBk = Workbooks.Open("path\TestDestination.xlsx") Windows(wrkBk.Name).Visible = False MsgBox WorksheetFunction.Sum(wrkBk.Names("MyNamedRange").RefersToRange) Windows(wrkBk.Name).Visible = True End Sub 
  • VBA Возвращаемое сообщение, если ячейка (ы) в диапазоне пустая
  • Как передать параметр Range для функции VLookup?
  • Установка переменной с помощью VLookup & Named Ranges
  • Как изменить переменную диапазона без редактирования ячеек на листе
  • Excel VBA Выбор диапазонов ячеек
  • выбор второй строки текущей строки excel vba
  • Количество строк в excel
  • Назначение диапазонов в массив
  • Python xlrd Именованный диапазон для имен таблиц
  • Код VBA для перемещения ячеек из одного столбца в другой на основе конкретных критериев ячейки
  • Создайте массив строк из диапазона (обработка ошибок)
  • Interesting Posts

    Скрыть или показать все листы Excel без петлирования

    Экспорт данных DataGridView в файл Excel в C #

    Использование vlookup в vba, но обновление пользовательской формы в реальном времени

    Excel2k7 / VBA: получение адреса ячейки при нажатии кнопки формы

    Формула для соответствия / поиска, если часть строки в ячейке равна значению в заданном диапазоне и возвращает это значение

    Попытка извлечь ОДНО значение с веб-страницы с помощью VBA в Excel

    Картина графика в Excel: условные метки

    Форматирование списка текстовых строк в Excel

    Слияние двух файлов excel с использованием общего столбца

    Как сохранить файлы в том месте, где находится исходный файл с помощью vba?

    Драйвер ODBC не поддерживает запрашиваемые свойства

    python: нет такой ошибки файла или каталога

    Как я могу установить / использовать «Scripting.FileSystemObject» в Excel 2010 для MAC?

    Excel 2007 Обновить импортированный файл CSV из Интернета

    Как ограничить функцию VBA только на модуле

    Давайте будем гением компьютера.