#excel #vba #32bit-64bit #userform
#excel #vba #32-64-разрядный #пользовательская форма
Вопрос:
У меня есть несколько пользовательских форм, которые используют элемент управления ListView, но он не загружается на некоторых наших компьютерах с Windows 10 / Office 10. Я обнаружил, что ссылка на Microsoft Windows Common Controls 6.0 (SP6) отсутствовала, а затем я узнал, как зарегистрировать ее с помощью regsvr32. Теперь, когда у меня правильно зарегистрирована ссылка, я вижу элемент управления listview в списке дополнительных элементов управления и смог его активировать, но когда я пытаюсь добавить элемент управления в форму, появляется ошибка на рисунке ниже… Кто-нибудь знает, что происходит?
Ответ №1:
a)
ПК с 32-разрядной Windows столкнутся с проблемами с распределенными файлами, сохраненными в 64-разрядной Windows, поскольку библиотеки зарегистрированы в разных папках (System32 против SysWOW64). Вы могли бы попробовать перейти в Excel, удалить ссылку на библиотеку на 32-разрядном компьютере Office вручную, повторно ввести обновленную ссылку на ListView и повторно сохранить проект локально. b)
Кроме того, элемент управления Treeview не представляет собственного элемента управления MSForms и вообще не может использоваться, если Office установлен как 64-разрядная версия. Существуют профессиональные решения, такие как MSForms (все на VBA) treeview (предлагающие даже бесплатную демонстрацию кода в упрощенной версии).
Комментарии:
1. Я попробую использовать ListGrid по предоставленной вами ссылке. спасибо за информацию.
2. Я заметил это: на моем компьютере установлены 64-разрядные Win10 Office16. Когда я проверяю используемые ссылки моего проекта, расположение общих элементов управления Ms Win отображается так же, как в System32, как показано на этом изображении ibb.co/gPNVD46 и он работает нормально… Теперь на другом компьютере с другой версией office, 10, также 64-разрядной, я безуспешно пытался зарегистрировать его в System32, но мне удалось зарегистрировать его в SysWOW64 … и ссылка на общие элементы управления Ms Win отображается в списке, но я не могу активировать элемент управления, он выдает ошибку, которую я ранее опубликовал…
3. Обратите внимание, что даже версии Office, допускающие 64-разрядную версию, часто устанавливаются как 32-разрядная версия . SysWOW64 расшифровывается как Система Windows (32-разрядная) в Windows (64-разрядная) . 32-разрядная программа, пытающаяся установить свои 32-разрядные lib-файлы в
C:WindowsSystem32
, будет перенаправлена наC:WindowsSysWOW64
. Если Office на другом компьютере действительно установлен как 64-разрядная версия, AFAIK, шансов нет — см. (b) в ответе — @DelmarSilva