Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2016, 12:32   #1
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 213
По умолчанию как из 2003 программно сохранить файл с макросами в папку, чтобы можно было работать с макросами в 2010?

Уважаемые профи! Прошу помощи!
Не могу разобраться, как сделать так, чтобы при работе из 2010 экселя с файлом в формате xls при программном сохранении файла в папку не испарялся VBA проект? Т.е. при повторном открытии файла его иногда нет. Почему так происходит - не могу понять.
Спасибо.
Bezdar вне форума Ответить с цитированием
Старый 06.10.2016, 12:35   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Следите в каком формате сохраняете файл.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.10.2016, 13:10   #3
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 213
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Следите в каком формате сохраняете файл.
в каком формате нужно программно сохранять файл с поддержкой макросов, чтобы можно было с ним работать и в 2003, и в 2010?
Bezdar вне форума Ответить с цитированием
Старый 06.10.2016, 13:15   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

В формате для 2003
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.10.2016, 13:18   #5
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 213
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
В формате для 2003
вот именно в этом формате отваливается VBA проект, причем не на регулярной основе, в чем может быть причина?
Bezdar вне форума Ответить с цитированием
Старый 06.10.2016, 13:45   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

когда решаете не возиться с напоминаниями о совместимости и решаете сохранить файл в новом формате xlsx - вот тут макросам и кранты. и это не происки Excel, это умелое и осознанное реагирование пользователя на все предупреждения...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.10.2016, 14:22   #7
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 213
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
когда решаете не возиться с напоминаниями о совместимости и решаете сохранить файл в новом формате xlsx - вот тут макросам и кранты. и это не происки Excel, это умелое и осознанное реагирование пользователя на все предупреждения...
файл автоматом сохраняется с расширением xls
Bezdar вне форума Ответить с цитированием
Старый 07.10.2016, 03:51   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

расширение значения не имеет
файл у вас сохраняется с формате XLSX, но получает расширение XLS
Excel умный, при открытии файла на расширение не смотрит, - потому вам и кажется, что вы работаете с файлом формата Excel 97-2003 (а, по факту, файл имеет формат Excel 2007 Open XML)

Когда вы сохраняете файл методом SaveAs, надо указать второй параметр (FileFormat) равным 0 (формат Excel 97-2003)
Тогда VBA проект теряться не будет

т.е. заменить код вида
ActiveWorkbook.SaveAs filename
на код
ActiveWorkbook.SaveAs filename, 0
EducatedFool вне форума Ответить с цитированием
Старый 07.10.2016, 08:59   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Игорь, откуда сиё известно? Ни кода, ни файла, к тому же было слово иногда...
Т.е. иногда макросы есть! Что тут гадать...
3 Игоря в одной теме
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.10.2016, 13:42   #10
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 213
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
расширение значения не имеет
файл у вас сохраняется с формате XLSX, но получает расширение XLS
Excel умный, при открытии файла на расширение не смотрит, - потому вам и кажется, что вы работаете с файлом формата Excel 97-2003 (а, по факту, файл имеет формат Excel 2007 Open XML)

Когда вы сохраняете файл методом SaveAs, надо указать второй параметр (FileFormat) равным 0 (формат Excel 97-2003)
Тогда VBA проект теряться не будет

т.е. заменить код вида
ActiveWorkbook.SaveAs filename
на код
ActiveWorkbook.SaveAs filename, 0

Спасибо большое за развернутый ответ! Даже не подозревала от таких тонкостях
Bezdar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать чтобы можно было вводить любое число ? jeys Общие вопросы по Java, Java SE, Kotlin 4 11.04.2015 13:47
Как расположить дочернее окно поверх родительского, но так, чтобы можно было работать с родительским окном? ivan.tiran Общие вопросы Delphi 2 17.05.2012 23:46
Как можно собрать Builder чтобы можно было бы заменять большие части кода? cargo29 Общие вопросы Delphi 17 18.02.2011 20:47
скопировал файл с макросами :( zander Microsoft Office Excel 3 16.02.2009 22:53
Медленно работает excel-файл с макросами philipz Microsoft Office Excel 1 15.01.2009 13:10