Проблемы с каталогом файлов с ошибкой нижнего индекса - PullRequest
0 голосов
/ 01 марта 2019

Я написал макрос в книге под названием "Payroll_Cleanup", чтобы очистить / отформатировать файл с именем "Payroll".

Файл макроса и файлы, подлежащие очистке, находятся в одной папке.

Макрос отлично работает на моем компьютере ,

Однако при помещении той же папки, которая была у меня на рабочем столе других пользователей, чтобы они могли запустить файл, они получают ошибку "Subscript out of Range".

Отладчик VBA выделяет эту строку

Set wb1 = Workbooks("Payroll_Cleanup") 'out of range error

Помните, это файл, который уже открыт

Итак, я изменил эту строку кода на

Set wb1 = ActiveWorkbook

Отлично, теперь он продолжается.

Теперь он дает мне еще одну "Subscript out of Range" ошибку для:

  Workbooks.Open ("Payroll.xlsb") 'file to be cleaned that is in the same folder.  

Позже устанавливается Set wb2 = Workbooks("Payroll")

Поскольку яне могу просто сделать еще одну "ActiveWorkbook" строку, что еще я могу сделать?Чего мне не хватает?Я проверил настройки макроса центра доверия, и они точно совпадают.

1 Ответ

0 голосов
/ 01 марта 2019

В проводнике файлов есть настройка (Просмотр, Показать / Скрыть, Показать расширения файлов), чтобы (хотите верьте, хотите нет), чтобы показать или скрыть отображение расширений файлов с именами файлов в списке.

Когда этот параметр включен (показывать расширения), он вызывает нежелательный побочный эффект, заставляя открытую коллекцию рабочих книг VBA включать расширение файла с именем рабочей книги.

Когда включена функция «Показать расширения файла» в Проводнике файлов,

'this will show Subscript out of Range error.
Set wb1 = Workbooks("Payroll_Cleanup")

'this will not
Set wb1 = Workbooks("Payroll_Cleanup.xlsb")

Может показаться, что на «компьютере другого пользователя» эта опция включена.

Вы также можете сэкономить немного, составив две последующие строки кода.

set wb2 =  Workbooks.Open ("Payroll.xlsb")   '<~~ needs full path
'maybe better as,
set wb2 =  Workbooks.Open (wb1.path & "\" & "Payroll.xlsb")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...