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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2010, 08:57   #1
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию ActiveWorkbook.Close SaveChanges:=True

Здравствуйте, помогите пожалуйста решить такую проблему: есть макрос, он находит в папке *.xls* файлы, выполняет ряд преобразований и сохраняет их, дело в том, что до момента сохранения всё преобразуется правильно, но после выполнения команды ActiveWorkbook.Close SaveChanges:=True я открываю сохранённый файл а в нём не те изменения. В чём тут дело может быть? Заранее спасибо за помощь!
1134 вне форума Ответить с цитированием
Старый 09.07.2010, 10:27   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

это конечно загадка (надо разбираться на местах), попробуй разве так
Код:
ActiveWorkbook.Save
ActiveWorkbook.Close
аналитика вне форума Ответить с цитированием
Старый 09.07.2010, 12:55   #3
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию

К сожалению эффекта нет, возможно дело в самом макросе, в приложенном архиве будут файл с макросом и образец файла, который должен им обрабатываться. Обратите внимание на комментарий в 16 строке макроса.
Вложения
Тип файла: rar Makros&Obrazec.rar (21.5 Кб, 15 просмотров)
1134 вне форума Ответить с цитированием
Старый 09.07.2010, 14:06   #4
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

файл "образец" - какой-то косячный формат (там все делается, но диаграммы не поддерживает), короче, сохраняй его как нормальный файл (я его сохранил как .xlsx)
и еще один момент (чтобы саму книгу "макрос" не цеплял; если конечно она в той же папке)
Код:
   Do While sFiles <> ""
      If ThisWorkbook.Name <> sFiles Then
         Workbooks.Open sFiles
         Go_Macro
         '      ActiveWorkbook.Save True
         ActiveWorkbook.Close SaveChanges:=True
      End If
         sFiles = Dir
      
   Loop
я все это сделал, работает
аналитика вне форума Ответить с цитированием
Старый 09.07.2010, 14:13   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А файл Образец.xls - это текст с другим расширением. То-то я думаю, чего это он в текстовом виде предлагает сохранять, но так и не врубился вначале...

Т.е. вероятно можно сделать типа:
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\User\Рабочий стол\Образец.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 09.07.2010 в 14:16.
Hugo121 вне форума Ответить с цитированием
Старый 09.07.2010, 14:55   #6
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию

Вобщем, если файлы для преобразования сохранять в формате *.xlsx то действительно всё работает, но эти файлы получаются автоматически при выгрузке из нашей программы, причём если их выгружать в формате .xlsx они не открываются вообще, что весьма обидно. Придётся выгружать в .xls, дописывать автоматическое сохранение в формате .xlsx, а макрос-то и так не очень быстрый, мягко говоря...
1134 вне форума Ответить с цитированием
Старый 09.07.2010, 16:25   #7
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию

Всем спасибо, проблема была именно в том что файл сохранялся как текст, я наивно предполагал, что если при выгрузке файла задать расширение .xls, то он выгрузится в формате Excele, и ещё я наивно предпологал, что уж сохраняется всё точно в эксэлевском формате, а оказывается в том что был изначально. Эта строчка всё исправила:

ActiveWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

и всё в порядке.
1134 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ShowModal, close!!!! Ital1cs Помощь студентам 3 02.04.2010 19:50
Open&Close в С++ sabov Помощь студентам 8 11.12.2009 23:30
activeWorkBook.Close на вылет tolikman Microsoft Office Excel 3 05.09.2008 23:43
Open Close CD-ROM Door Nick757 Общие вопросы Delphi 1 07.08.2007 09:03