Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка объекта неосуществима/Compile error in hidden module - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: _Boroda_, китин  
Вставка объекта неосуществима/Compile error in hidden module
Alex_ST Дата: Вторник, 18.10.2016, 13:20 | Сообщение № 41
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Блин, тяжело общаться в режиме кросс-постинга с Планетой
И там ответить надо, и здесь хочется, чтобы осталось.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеБлин, тяжело общаться в режиме кросс-постинга с Планетой
И там ответить надо, и здесь хочется, чтобы осталось.

Автор - Alex_ST
Дата добавления - 18.10.2016 в 13:20
IVAndron Дата: Среда, 19.10.2016, 13:29 | Сообщение № 42
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 14 ±
Замечаний: 0% ±

Excel 2003
Alex_ST, убрал экспорт разделов реестра. Продвинутые сами смогут разобраться что к чему, а рядовые пользователи только запутаются.

Для тех кто хочет всё сделать не вникая в суть, сохраняем в bat файл с кодировкой 866 (OEM - русская), чтобы сообщения на русском были читаемы, и выполняем с правами администратора.
Обратите внимание! есть код удаления файлов *.exd глобально! на системном диске, не вздумайте вместо него указать *.* Если что, то я предупреждал! :)

[vba]
Код

@echo off

SETLOCAL
::STEP1
cls
net.exe session 1>NUL 2>NUL || (echo Этот сценарий требует права администратора. & pause && exit /b 1)
echo Завершите работу офисных приложений, т.к. далее завершение будет принудительным!
echo.
pause
taskkill /T /F /IM EXCEL.exe
taskkill /T /F /IM WINWORD.exe
taskkill /T /F /IM POWERPNT.exe

::STEP2
::https://support.microsoft.com/en-us/kb/290537
::https://support.microsoft.com/en-us/kb/3025036
::Поиск и удаление файлов *.exd глобально! на системном диске
%systemdrive%
cd \
del /F /Q /S /A:H /A:-H *.exd

::Поиск и удаление файлов *.exd по пути переменных %Temp% и %Tmp% т.к. они могут ссылаться на диск отличный от системного
if exist %Temp% cd /d %Temp%&&del /F /Q /S /A:H /A:-H *.exd
if exist %Tmp% cd /d %Tmp%&&del /F /Q /S /A:H /A:-H *.exd

::Поиск и удаление файлов *.exd в профиле пользователя, на тот случай если профиль пользователя является перемещаемым и расположен на диске отличном от системного
if exist "%APPDATA%\Microsoft\Local" cd /d "%APPDATA%\Microsoft\Local"&&del /F /Q /S /A:H /A:-H *.exd
if exist "%APPDATA%\Microsoft\Forms" cd /d "%APPDATA%\Microsoft\Forms"&&del /F /Q /S /A:H /A:-H *.exd
if exist "%APPDATA%\Roaming\Microsoft\Forms" cd /d "%APPDATA%\Roaming\Microsoft\Forms"&&del /F /Q /S /A:H /A:-H *.exd
if exist "%USERPROFILE%\Local Settings\Temp" cd /d "%USERPROFILE%\Local Settings\Temp"&&del /F /Q /S /A:H /A:-H *.exd

::STEP3
::Перерегистрация библиотеки FM20.DLL
if exist "%windir%\System32\FM20.DLL" "%windir%\System32\regsvr32.exe" /u /s "%windir%\System32\FM20.DLL"
if exist "%windir%\SysWOW64\FM20.DLL" "%windir%\SysWOW64\regsvr32.exe" /u /s "%windir%\SysWOW64\FM20.DLL"

if exist "%windir%\System32\FM20.DLL" "%windir%\System32\regsvr32.exe" /s "%windir%\System32\FM20.DLL"
if exist "%windir%\SysWOW64\FM20.DLL" "%windir%\SysWOW64\regsvr32.exe" /s "%windir%\SysWOW64\FM20.DLL"

::STEP4
::https://msdn.microsoft.com/en-us/library/bb688194(v=vs.85).aspx
::Корректировка параметра Compatibility Flags, который отключает запуск элемента управления ActiveX
::Удаление параметра AlternateCLSID, который может присутствовать и перенаправлять на другой CLSID, а значение параметра Compatibility Flags в этом случае не учитывается

set key-01=HKLM\SOFTWARE\Microsoft\Office\Common\COM Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}
set key-02=HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}
set key-03=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COM Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}
set key-04=HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}

:reg-query-01
reg query "%key-01%" /s
if %errorlevel%==0 GOTO action-01
GOTO reg-query-02

:action-01
reg add "%key-01%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-01%" /v "AlternateCLSID" /f
GOTO reg-query-02

:reg-query-02
reg query "%key-02%" /s
if %errorlevel%==0 GOTO action-02
GOTO reg-query-03

:action-02
reg add "%key-02%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-02%" /v "AlternateCLSID" /f
GOTO reg-query-03

:reg-query-03
reg query "%key-03%" /s
if %errorlevel%==0  GOTO action-03
GOTO reg-query-04

:action-03
reg add "%key-03%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-03%" /v "AlternateCLSID" /f
GOTO reg-query-04

:reg-query-04
reg query "%key-04%" /s
if %errorlevel%==0  GOTO action-04
GOTO end

:action-04
reg add "%key-04%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-04%" /v "AlternateCLSID" /f
GOTO end

:end
ENDLOCAL
echo.
echo Работа завершена.
echo.
pause
exit /B
[/vba]
 
Ответить
СообщениеAlex_ST, убрал экспорт разделов реестра. Продвинутые сами смогут разобраться что к чему, а рядовые пользователи только запутаются.

Для тех кто хочет всё сделать не вникая в суть, сохраняем в bat файл с кодировкой 866 (OEM - русская), чтобы сообщения на русском были читаемы, и выполняем с правами администратора.
Обратите внимание! есть код удаления файлов *.exd глобально! на системном диске, не вздумайте вместо него указать *.* Если что, то я предупреждал! :)

[vba]
Код

@echo off

SETLOCAL
::STEP1
cls
net.exe session 1>NUL 2>NUL || (echo Этот сценарий требует права администратора. & pause && exit /b 1)
echo Завершите работу офисных приложений, т.к. далее завершение будет принудительным!
echo.
pause
taskkill /T /F /IM EXCEL.exe
taskkill /T /F /IM WINWORD.exe
taskkill /T /F /IM POWERPNT.exe

::STEP2
::https://support.microsoft.com/en-us/kb/290537
::https://support.microsoft.com/en-us/kb/3025036
::Поиск и удаление файлов *.exd глобально! на системном диске
%systemdrive%
cd \
del /F /Q /S /A:H /A:-H *.exd

::Поиск и удаление файлов *.exd по пути переменных %Temp% и %Tmp% т.к. они могут ссылаться на диск отличный от системного
if exist %Temp% cd /d %Temp%&&del /F /Q /S /A:H /A:-H *.exd
if exist %Tmp% cd /d %Tmp%&&del /F /Q /S /A:H /A:-H *.exd

::Поиск и удаление файлов *.exd в профиле пользователя, на тот случай если профиль пользователя является перемещаемым и расположен на диске отличном от системного
if exist "%APPDATA%\Microsoft\Local" cd /d "%APPDATA%\Microsoft\Local"&&del /F /Q /S /A:H /A:-H *.exd
if exist "%APPDATA%\Microsoft\Forms" cd /d "%APPDATA%\Microsoft\Forms"&&del /F /Q /S /A:H /A:-H *.exd
if exist "%APPDATA%\Roaming\Microsoft\Forms" cd /d "%APPDATA%\Roaming\Microsoft\Forms"&&del /F /Q /S /A:H /A:-H *.exd
if exist "%USERPROFILE%\Local Settings\Temp" cd /d "%USERPROFILE%\Local Settings\Temp"&&del /F /Q /S /A:H /A:-H *.exd

::STEP3
::Перерегистрация библиотеки FM20.DLL
if exist "%windir%\System32\FM20.DLL" "%windir%\System32\regsvr32.exe" /u /s "%windir%\System32\FM20.DLL"
if exist "%windir%\SysWOW64\FM20.DLL" "%windir%\SysWOW64\regsvr32.exe" /u /s "%windir%\SysWOW64\FM20.DLL"

if exist "%windir%\System32\FM20.DLL" "%windir%\System32\regsvr32.exe" /s "%windir%\System32\FM20.DLL"
if exist "%windir%\SysWOW64\FM20.DLL" "%windir%\SysWOW64\regsvr32.exe" /s "%windir%\SysWOW64\FM20.DLL"

::STEP4
::https://msdn.microsoft.com/en-us/library/bb688194(v=vs.85).aspx
::Корректировка параметра Compatibility Flags, который отключает запуск элемента управления ActiveX
::Удаление параметра AlternateCLSID, который может присутствовать и перенаправлять на другой CLSID, а значение параметра Compatibility Flags в этом случае не учитывается

set key-01=HKLM\SOFTWARE\Microsoft\Office\Common\COM Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}
set key-02=HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}
set key-03=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COM Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}
set key-04=HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\{D7053240-CE69-11CD-A777-00DD01143C57}

:reg-query-01
reg query "%key-01%" /s
if %errorlevel%==0 GOTO action-01
GOTO reg-query-02

:action-01
reg add "%key-01%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-01%" /v "AlternateCLSID" /f
GOTO reg-query-02

:reg-query-02
reg query "%key-02%" /s
if %errorlevel%==0 GOTO action-02
GOTO reg-query-03

:action-02
reg add "%key-02%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-02%" /v "AlternateCLSID" /f
GOTO reg-query-03

:reg-query-03
reg query "%key-03%" /s
if %errorlevel%==0  GOTO action-03
GOTO reg-query-04

:action-03
reg add "%key-03%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-03%" /v "AlternateCLSID" /f
GOTO reg-query-04

:reg-query-04
reg query "%key-04%" /s
if %errorlevel%==0  GOTO action-04
GOTO end

:action-04
reg add "%key-04%" /v "Compatibility Flags" /t reg_dword /d 8388608 /f
reg delete "%key-04%" /v "AlternateCLSID" /f
GOTO end

:end
ENDLOCAL
echo.
echo Работа завершена.
echo.
pause
exit /B
[/vba]

Автор - IVAndron
Дата добавления - 19.10.2016 в 13:29
Alex_ST Дата: Четверг, 17.11.2016, 16:02 | Сообщение № 43
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Сегодня вдруг опять наступил на старые грабли :(
НО хитро: Textbox создавались и работали, а Combobox Check CommandButton -нет и при этом Excel не ругался при открытии таких файлоа, а просто они тупо не лоцировались мышкой ни в каком режиме
Батник это не исправлял.
Воспользовался методом с Process Monitor и обнаружил ещё один раздел реестра, куда Офис лезет при создании элементов:
[vba]
Код
HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{8BD21D50-EC42-11CE-9E0D-00AA006002F3}\Compatibility Flags
[/vba]
И там как раз стоит значение [vba]
Код
Type: REG_DWORD, Data: 1024
[/vba]
Заменил это 16-ричное 400 на 800000, как советовал IVAndron.
Всё заработало! Ещё раз спасибо! Заслужил плюс в репу однозначно.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеСегодня вдруг опять наступил на старые грабли :(
НО хитро: Textbox создавались и работали, а Combobox Check CommandButton -нет и при этом Excel не ругался при открытии таких файлоа, а просто они тупо не лоцировались мышкой ни в каком режиме
Батник это не исправлял.
Воспользовался методом с Process Monitor и обнаружил ещё один раздел реестра, куда Офис лезет при создании элементов:
[vba]
Код
HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{8BD21D50-EC42-11CE-9E0D-00AA006002F3}\Compatibility Flags
[/vba]
И там как раз стоит значение [vba]
Код
Type: REG_DWORD, Data: 1024
[/vba]
Заменил это 16-ричное 400 на 800000, как советовал IVAndron.
Всё заработало! Ещё раз спасибо! Заслужил плюс в репу однозначно.

Автор - Alex_ST
Дата добавления - 17.11.2016 в 16:02
IVAndron Дата: Вторник, 06.12.2016, 13:42 | Сообщение № 44
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 14 ±
Замечаний: 0% ±

Excel 2003
Вот еще места где может крыться проблема:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ВЕРСИЯ ОФИСА\Common\COM Compatibility\{CLSID}
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\ВЕРСИЯ ОФИСА\Common\COM Compatibility\{CLSID}

ВЕРСИЯ ОФИСА к примеру может быть 8.0, 10.0, 11.0 и так далее

{CLSID} к примеру равен {8856F961-340A-11D0-A96B-00C04FD705A2}

Итого: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\COM Compatibility\{8856F961-340A-11D0-A96B-00C04FD705A2}

Также, Compatibility Flags значение 400 меняем на 800000.

Не уверен, что при любом раскладе нужно вносить такие изменения, только в случае если что-то перестало работать,
ведь майкрософт таким образом блокирует компоненты исходя из соображений безопасности, а мы получается делаем откат.
 
Ответить
СообщениеВот еще места где может крыться проблема:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ВЕРСИЯ ОФИСА\Common\COM Compatibility\{CLSID}
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\ВЕРСИЯ ОФИСА\Common\COM Compatibility\{CLSID}

ВЕРСИЯ ОФИСА к примеру может быть 8.0, 10.0, 11.0 и так далее

{CLSID} к примеру равен {8856F961-340A-11D0-A96B-00C04FD705A2}

Итого: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\COM Compatibility\{8856F961-340A-11D0-A96B-00C04FD705A2}

Также, Compatibility Flags значение 400 меняем на 800000.

Не уверен, что при любом раскладе нужно вносить такие изменения, только в случае если что-то перестало работать,
ведь майкрософт таким образом блокирует компоненты исходя из соображений безопасности, а мы получается делаем откат.

Автор - IVAndron
Дата добавления - 06.12.2016 в 13:42
Alex_ST Дата: Вторник, 06.12.2016, 14:38 | Сообщение № 45
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
IVAndron, ну так и выложил бы свой уже подпиленный должным образом волшебный батник, а за одно мог бы добавить правку и того, что я в предыдущем посте нашёл.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеIVAndron, ну так и выложил бы свой уже подпиленный должным образом волшебный батник, а за одно мог бы добавить правку и того, что я в предыдущем посте нашёл.

Автор - Alex_ST
Дата добавления - 06.12.2016 в 14:38
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!