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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2011, 16:44   #1
Tvilla
Новичок
Джуниор
 
Регистрация: 03.05.2011
Сообщений: 1
По умолчанию VBA excel не удается закрыть и сохранить книгу без возникновения диалогового окна

Здравствуйте!
Есть задача для каждого файла из папки выполнить некоторое действие, сохранить и закрыть его. "некоторое действие" записывается макрос-рекордером и вставляется в основной макрос:

Sub ppp()

Dim x As String
Dim file As String
x = "C:\Documents and Settings\ddd\"
file = Dir(x)
Do While file <> ""

Workbooks.Open Filename:=x & file

With ActiveSheet.PageSetup ' записано макрос-рекордером
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.393700 787401575)
.RightMargin = Application.InchesToPoints(0.393700 787401575)
.TopMargin = Application.InchesToPoints(0.787401 57480315)
.BottomMargin = Application.InchesToPoints(0.984251 968503937)
.HeaderMargin = Application.InchesToPoints(0.511811 023622047)
.FooterMargin = Application.InchesToPoints(0.511811 023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA3
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = False
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With

Workbooks(file).Close savechanges:=True


file = Dir
Loop

End Sub




не смотря на эту строчку
Workbooks(file).Close savechanges:=True
вылезает диалоговое окно, хочу ли я сохранить изменения и у меня не получается от него избавиться( есть ли идеи с чем это связано?

Спасибо!
Tvilla вне форума Ответить с цитированием
Старый 04.05.2011, 16:38   #2
gsg
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 108
По умолчанию

строчка в начале кода
Код:
application.DisplayAlerts=False
поможет
в конце, соотв.
Код:
application.DisplayAlerts=true
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны...
-Тогда, возьмите лучших из худших!
gsg вне форума Ответить с цитированием
Старый 28.06.2012, 11:01   #3
Vja4eslav
Пользователь
 
Регистрация: 13.08.2011
Сообщений: 90
По умолчанию

Написал такой код для закрытия файла с сохранением изменений, но без запроса на сохранение:
Код:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Call Проверка
If Sheets("ОШИБКИ ПРИ ЗАПОЛНЕНИИ").[A1].Value <> vbNullString Then
    Select Case MsgBox("В ходе проведения проверки на правильность заполнения строк были выявлены ОШИБКИ ! Вы хотите закрыть этот файл, а ошибки исправить позже ?", 20, "УВАЖАЕМЫЙ ПОЛЬЗОВАТЕЛЬ, ВНИМАНИЕ !!!")
    Case 6 ' Да
'        Application.ThisWorkbook.Close
    Case 7 ' Нет
        Application.ThisWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True
End Select
End If
Application.DisplayAlerts = True
End Sub
Но excel всё равно спрашивает хочу ли я сохранить изменения....
Может ли кто-нибудь, пожалуйста, подсказать - что не так в коде?



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.06.2012 в 08:46.
Vja4eslav вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файла из Webbrowser без диалогового окна _bss_ Работа с сетью в Delphi 9 04.07.2012 14:42
Сохранить VBA проект без пароля kzld Microsoft Office Excel 1 18.12.2010 10:06
VBA excel сохранить таблицу xls в dBase в кодировке windows Zarba Microsoft Office Excel 1 07.09.2010 19:05
Вызов диалогового окна Sapsan Общие вопросы C/C++ 6 30.03.2009 23:03
как сохранить всю книгу, только значений без формул? katlis Microsoft Office Excel 5 17.12.2008 11:59