Уведомления безопасности VBA - «Соединения для передачи данных были заблокированы» - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь определить причину «Уведомления о безопасности Microsoft Excel», связанного с файлом .xlam. В частности, мне любопытно, есть ли определенные свойства или методы в коде VBA, которые приводят к такому типу уведомления о безопасности? У нас есть еще один .xlam, который мы устанавливаем в качестве надстройки, и он никогда не приводил к аналогичному уведомлению, что наводит меня на мысль, что используется определенное свойство или метод, вызывающий проблему. Я прокомментировал несколько строк, чтобы узнать, смогу ли я изолировать преступника сам, но пока не повезло.

Примеры кода закомментированы;

pathToCSV = ActiveWorkbook.Path
HostName = ActiveWorkbook.Name
Set Globe = CreateObject("Scripting.FileSystemObject")
Set place = Globe.GetFolder(pathToCSV)
Set Destination = Application.Workbooks.Add

Любые мысли приветствуются.

Data connections have been blocked

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

@ Матье Гиндон

Я считаю, что код должен быть

for i = 1 to thisworkbook.connections.count : thisworkbook.connections(i).delete : next

не

for i = 1 to thisworkbook.connections.count : thisworkbook.connections(1).delete : next

Согласны ли вы?

0 голосов
/ 06 ноября 2018

Надстройка Excel - это просто особый вид Workbook проекта, который загружается при запуске Excel. Будучи объектом Workbook, он имеет коллекцию Connections.

Я не знаю, нужны ли вашему коду соединения в ThisWorkbook, но кажется, что загрузка надстройки Excel с подключениями к данным - это проблема безопасности - так что если вам действительно они нужны, подумайте исследование альтернативных путей.

Чтобы удалить их, работайте в непосредственной панели (Ctrl + G) - убедитесь, что проект рабочей книги надстройки активен в редакторе VBA.

for i = 1 to thisworkbook.connections.count : thisworkbook.connections(1).delete : next

Это должно удалить их всех. Сохраните проект надстройки, закройте Excel, откройте заново, посмотрите, все ли вы получили предупреждение.

...