Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - макрос "Сохранить как..."

Ответить
Настройки темы
VBA - макрос "Сохранить как..."
who who вне форума

Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


в моей книге-расчёте есть кнопка
на неё повешен макрос:

Код: Выделить весь код
Private Sub CommandButton35_Click()
Dim wb As Workbook, wbName, wbPath, today As String
 Set wb = Excel.Application.ActiveWorkbook
 wbName = Sheets(1).Cells(2, 2)
 today = Date
 ttime = Format(Time, "hh-mm")
 wbPath = wb.Path
 Sheets(1).Cells(3, 1) = wbPath & "\" & wbName & "_" & today & "_" & ttime & ".xlsm"
If Not Application.Dialogs(xlDialogSaveAs).Show(wbName & "_" & today & ".xlsm") Then
MsgBox "Сохранение отменено!", vbExclamation
End If
End Sub
При пошаговом выполнении пропускается именно выдача диалогового окна без всякой ругани на ошибки, причём даже если опустить в строке:

Код: Выделить весь код
If Not Application.Dialogs(xlDialogSaveAs).Show(wbName & "_" & today & ".xlsm") Then
это:

Код: Выделить весь код
(wbName & "_" & today & ".xlsm")
.

Не работает именно

Код: Выделить весь код
If Not Application.Dialogs(xlDialogSaveAs).Show
раньше был комп win7 x32 и там всё отлично работало:
выдавалось диалоговое окно "Сохранить как..." и в случае нажатия "Отмена" выдавалось сообщение "Сохранение отменено!"
теперь комп поменяли стоит win8.1 x64 и данный макрос просто выдаёт сообщение "Сохранение отменено!" и ничего не сохраняется
может нужно куда подключить какие-нибудь дополнительные библиотеки?

PS: офис был и остался тот же MS Office 2007 из того же самого дистрибутива.

Отправлено: 16:17, 31-08-2015

 

Пользователь


Сообщения: 114
Благодарности: 13

Профиль | Отправить PM | Цитировать


Проверил на Win 8.1 64 и Excel 64. Всё работает. При нажатии на кнопку предлагается сохранить документ. При нажатии Отмена выдается messageBox.

Отправлено: 19:25, 31-08-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

who who вне форума Автор темы

Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата corbis:
Excel 64 »
Т.е. нужно ставить 64 битный excel? или у Вас другого года Office?

Отправлено: 08:25, 01-09-2015 | #3


Пользователь


Сообщения: 114
Благодарности: 13

Профиль | Отправить PM | Цитировать


Точно, забыл версию указать. У меня Office 2013. Попробуйте на виртуалке затестить разные версии и посмотреть, как будет работать.

Отправлено: 14:11, 01-09-2015 | #4

who who вне форума Автор темы

Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


Может кому пригодится
сам методом проб и ошибок получил такой вариант:

Код: Выделить весь код
Private Sub CommandButton35_Click()
Dim wb As Workbook, wbName, wbPath, today As String
 Set wb = Excel.Application.ActiveWorkbook
 wbName = Sheets(1).Cells(2, 2)
 today = Date
 ttime = Format(Time, "hh-mm")
 wbPath = wb.Path
 Sheets(1).Cells(3, 1) = wbPath & "\" & wbName & "_" & today & "_" & ttime & ".xlsm"
If Not Application.Dialogs(5).Show(wbName & "_" & today & ".xlsm") Then
MsgBox "Сохранение отменено!", vbExclamation
End If
End Sub
видимо в OS Win 8.1 как-то по иному обзываются данные диалоговые окна и нужна какая-нибудь заплатка для VBA 2007 года

Последний раз редактировалось who, 27-05-2016 в 09:42. Причина: комментарий


Отправлено: 09:40, 27-05-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата who:
видимо в OS Win 8.1 как-то по иному обзываются данные диалоговые окна »
Точно так же.
Цитата:
Const xlDialogSaveAs = 5

Member of Excel.XlBuiltInDialog

Отправлено: 17:44, 27-05-2016 | #6

who who вне форума Автор темы

Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата who:
видимо в OS Win 8.1 как-то по иному обзываются данные диалоговые окна »
Точно так же.
Цитата:
Const xlDialogSaveAs = 5
Member of Excel.XlBuiltInDialog »
честно говоря я совсем не понял, что именно вы тут написали...

Отправлено: 08:17, 30-05-2016 | #7


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


То, что константа «xlDialogSaveAs» — это и есть «5» в Вашем последнем коде .

Отправлено: 11:49, 30-05-2016 | #8

who who вне форума Автор темы

Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


Охотно верю, но в текстовом виде почему-то VBA не воспринимает у меня
Код: Выделить весь код
Application.Dialogs(xlDialogSaveAs).Show(wbName & "_" & today & ".xlsm")

Отправлено: 14:52, 30-05-2016 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


who, упакуйте Вашу Рабочую книгу, содержащую данный проект, в архив и приложите к сообщению.

Отправлено: 18:38, 30-05-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - макрос "Сохранить как..."

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Не открывается проводник "Открыть файл..." и "Сохранить как..." T1wka Microsoft Windows 8 и 8.1 14 13-11-2016 16:43
2013 - [решено] Как сделать текущую строку в ворд-файле как "Заголовок 1" через макрос? megagogo Microsoft Office (Word, Excel, Outlook и т.д.) 3 02-03-2015 10:12
Интерфейс - [решено] Как изменить диалог "Сохранить/Сохранить как" ? Ciber SLasH Microsoft Windows 7 5 03-05-2014 18:03
Интерфейс - [решено] "Открыть файл..." и "Сохранить как..." не открывается проводник dembel_zone Microsoft Windows 7 16 24-03-2014 12:33
Не вижу разделов в менюшках "Сохранить как" "Открыть" и т.д. SettiBiz Microsoft Windows 2000/XP 20 14-08-2006 16:23




 
Переход