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

Вход

Регистрация

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

 

= Мир MS Excel/Проблемы в работе макроса на других ПК - Страница 2 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 2 из 2«12
Модератор форума: _Boroda_, Pelena 
Мир MS Excel » Работа и общение » Работа / Фриланс » Проблемы в работе макроса на других ПК (Макросы/Sub)
Проблемы в работе макроса на других ПК
Gustav Дата: Среда, 28.06.2017, 20:55 | Сообщение № 21
Группа: Друзья
Ранг: Старожил
Сообщений: 1409
Репутация: 541 ±
Замечаний: 0% ±

начинал с Excel 4.0...
ОлеггелО, а хоть расскажите что-то немного о нюансах, иначе ценность темы для форума сомнительна...


Мой tip box - яд 41001663842605
 
Ответить
СообщениеОлеггелО, а хоть расскажите что-то немного о нюансах, иначе ценность темы для форума сомнительна...

Автор - Gustav
Дата добавления - 28.06.2017 в 20:55
AndreTM Дата: Среда, 28.06.2017, 22:49 | Сообщение № 22
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 496 ±
Замечаний: 0% ±

2003 & 2010
Gustav, это фриланс :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеGustav, это фриланс :)

Автор - AndreTM
Дата добавления - 28.06.2017 в 22:49
ОлеггелО Дата: Пятница, 30.06.2017, 17:48 | Сообщение № 23
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 123
Репутация: 19 ±
Замечаний: 0% ±

расскажите что-то немного о нюансах, иначе ценность темы для форума сомнительна...
Основной нюанс оказался в этом макросе (копирует модуль со всеми макросами в нём из одного файла в другой)\:[vba]
Код
Sub Copy_Module() 'копировать модуль с макросом
Dim objVBProjFrom As Object, objVBProjTo As Object, objVBComp As Object
Dim sModuleName As String, sFullName As String 'расширение стандартного модуля
Const sExt As String = ".bas"
sModuleName = "MyMacros" 'имя модуля который будет скопирован
On Error Resume Next
Set objVBProjFrom = ThisWorkbook.VBProject 'проект книги, из которой копируем модуль
Set objVBComp = objVBProjFrom.VBComponents(sModuleName) 'необходимый компонент
If objVBComp Is Nothing Then 'если указанного модуля не существует
    MsgBox "Модуль с именем '" & sModuleName & "' отсутствует в книге.", vbCritical, "Error"
    Exit Sub
End If
Set objVBProjTo = ActiveWorkbook.VBProject 'проект книги для добавления модуля
'sFullName = "C:\" & sModuleName & sExt 'полный путь для экспорта/импорта модуля. К папке должен быть доступ на запись/чтение
sFullName = Application.DefaultFilePath & "\" & sModuleName & Ext
objVBComp.Export Filename:=sFullName
objVBProjTo.VBComponents.Import Filename:=sFullName
Kill sFullName 'удаляем временный файл для импорта
End Sub
[/vba]
Вместо строки, которая в макросе закомментирована, нужно поставить строку: sFullName = Application.DefaultFilePath & "\" & sModuleName & Ext. Это в случае, если я понял правильно, когда политикой безопасности запрещена запись непосредственно на диск "C" (у меня на работе так на некоторых ПК).
Второй нюанс, которого не знал:в одной из строк макроса была такая команда - Workbooks(NBook).Activate . При этом NBook содержала имя файла вида: "ИмяФайла", а нужно было "ИмяФайла.xls" то есть с расширением, хотя дома у меня и без этого всё работало.
И третий: на некоторых ПК не происходила вставка в строку формул формулы для текста прописью и штрих-кода. Здесь я не знаю в чём дело: на одной и той же машине, под одним пользователем работало, под другим нет. Настроил всё это на работе человек из службы безопасности (даже не в EXCEL, кажется) и всё заработало! Я при этом не был, что он делал не могу сказать.
 
Ответить
Сообщение
расскажите что-то немного о нюансах, иначе ценность темы для форума сомнительна...
Основной нюанс оказался в этом макросе (копирует модуль со всеми макросами в нём из одного файла в другой)\:[vba]
Код
Sub Copy_Module() 'копировать модуль с макросом
Dim objVBProjFrom As Object, objVBProjTo As Object, objVBComp As Object
Dim sModuleName As String, sFullName As String 'расширение стандартного модуля
Const sExt As String = ".bas"
sModuleName = "MyMacros" 'имя модуля который будет скопирован
On Error Resume Next
Set objVBProjFrom = ThisWorkbook.VBProject 'проект книги, из которой копируем модуль
Set objVBComp = objVBProjFrom.VBComponents(sModuleName) 'необходимый компонент
If objVBComp Is Nothing Then 'если указанного модуля не существует
    MsgBox "Модуль с именем '" & sModuleName & "' отсутствует в книге.", vbCritical, "Error"
    Exit Sub
End If
Set objVBProjTo = ActiveWorkbook.VBProject 'проект книги для добавления модуля
'sFullName = "C:\" & sModuleName & sExt 'полный путь для экспорта/импорта модуля. К папке должен быть доступ на запись/чтение
sFullName = Application.DefaultFilePath & "\" & sModuleName & Ext
objVBComp.Export Filename:=sFullName
objVBProjTo.VBComponents.Import Filename:=sFullName
Kill sFullName 'удаляем временный файл для импорта
End Sub
[/vba]
Вместо строки, которая в макросе закомментирована, нужно поставить строку: sFullName = Application.DefaultFilePath & "\" & sModuleName & Ext. Это в случае, если я понял правильно, когда политикой безопасности запрещена запись непосредственно на диск "C" (у меня на работе так на некоторых ПК).
Второй нюанс, которого не знал:в одной из строк макроса была такая команда - Workbooks(NBook).Activate . При этом NBook содержала имя файла вида: "ИмяФайла", а нужно было "ИмяФайла.xls" то есть с расширением, хотя дома у меня и без этого всё работало.
И третий: на некоторых ПК не происходила вставка в строку формул формулы для текста прописью и штрих-кода. Здесь я не знаю в чём дело: на одной и той же машине, под одним пользователем работало, под другим нет. Настроил всё это на работе человек из службы безопасности (даже не в EXCEL, кажется) и всё заработало! Я при этом не был, что он делал не могу сказать.

Автор - ОлеггелО
Дата добавления - 30.06.2017 в 17:48
Мир MS Excel » Работа и общение » Работа / Фриланс » Проблемы в работе макроса на других ПК (Макросы/Sub)
Страница 2 из 2«12
Поиск:

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