Доброго времени суток, уважаемые форумчане. Заранее приношу извинения за некоторую многобуквенность. Скажу сразу, все нижеизложенное я ЗАДУМАЛ сделать чисто для облегчения своей работы, без полной уверенности в реальности выполнения задачи. Итак, периодически выявляются ошибки или недочеты в кодах созданных мною (очень часто с помощью нашего форума) файлов или например новые элементы просят сделать на форме. После устранения или доделок приходится по удаленному доступу связываться с пользователями и, скопировав их файл к себе (или мой обновленный к ним), заменять userform в их файле и/или код на страннице. А задумал я следующее: создается файл, в который помещаются все измененные userform и/или листы, разумеется под теми же именами. На открытие файла вешается приблизительно такой алгоритм:
1. Запрашивается файл для изменений:
2. Запускаем цикл (и вот здесь мои познания пока кончаются ): проходим по всем имеющимся userform нового файла и в случае нахождения такого же имени в файле пользователя, сначала удаляем форму (как я понял заменить одинаково называющиеся userform Excel не даст) и КОПИРУЕМ эту userform в файл пользователя, если же формы с таким именем нет в файле пользователя, то просто копируем соответствующую форму.
3. Аналогично проходим по именами листов: если такой лист есть, то меняем КОД (весь целиком) имеющийся на нем на код с такого же листа нового файла, если нет, то просто копируем лист (с кодом и возможными данными) в файл пользователя.
4.После отработки кода файл закрывается и вуаля: у пользователя оказывается файл с обновленными userform и кодами на листах
Можно ли так сделать и как, если можно? Заранее спасибо всем откликнувшимся
1. Запрашивается файл для изменений:
Код |
---|
If MsgBox("Вы уверены?", vbCritical + vbYesNo, "Внимание! Подумайте перед ответом") = vbYes Then FileName = GetFileName("Укажите файл для импорта", ThisWorkbook.Path) 'запрашиваем имя файла If Len(FileName) = 0 Then Exit Sub 'выход, если пользователь отказался от выбора файла Else: Exit Sub End If |
3. Аналогично проходим по именами листов: если такой лист есть, то меняем КОД (весь целиком) имеющийся на нем на код с такого же листа нового файла, если нет, то просто копируем лист (с кодом и возможными данными) в файл пользователя.
4.После отработки кода файл закрывается и вуаля: у пользователя оказывается файл с обновленными userform и кодами на листах
Можно ли так сделать и как, если можно? Заранее спасибо всем откликнувшимся