|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
Здравствуйте. Мне нужно чтобы при нажатии пользователем "Сохранить как" предлагалось нужное имя файла и диалоговое окно не высвечивалось два раза. Подскажите пожалуйста как это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 13:09 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
Workbook.BeforeSave Event ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 13:19 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
Akina, Как раз туда и пишу. Все хорошо выводит. А потом во второй раз диалоговое окно выводит. Если Cancel=true, то вообще не сохраняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 13:23 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
guzel09А потом во второй раз диалоговое окно выводит.А описание ВСЕХ параметров обработчика прочитать не судьба? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 13:55 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim fname As String SaveAsUI = False fname = Application.GetSaveAsFilename(CStr(Sheets(1).Range("A1").Value) & ".xls", "Excel Files (*.xls), *.xls") ThisWorkbook.SaveAs fname End Sub Ну что я не правильно делаю? ((( Он все равно два диалогового окна выводит (с "моим" именем файла) и одно диалоговое окно (без имени файла вообще). Заблудилась в трех соснах ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 15:35 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
guzel09ThisWorkbook.SaveAs fnameВот это вот вызывает повторно событие сохранить как. Вероятно, нужна доп.переменная. Попробуйте так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 15:54 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
The_Prist, Спасибо Теперь не три раза выходит диалоговое окно, а два. Что еще может вызывать его? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 16:07 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
guzel09Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ' ... ThisWorkbook.SaveAs fname End SubГениально! а просто запихать введённое значение в Workbook.Name и дать методу Save отработать как положено - не? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 16:13 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
AkinaWorkbook.Namereadonly ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 16:13 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
guzel09Теперь не три раза выходит диалоговое окно, а дваТак Вы сами второе показываете. Первое - встроенное. Второе - Ваше. Вы же первое не отменяете. Делайте так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 16:32 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
The_Prist , вот сижу и думаю, что правильнее - Dim IsNoEvents уровня модуля или Static IsNoEvents уровня процедуры... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 16:37 |
|
Excell VBA Сохранить файл
|
|||
---|---|---|---|
#18+
Akinaвот сижу и думаюВ данном конкретном случае, думаю, без разницы :) Но если будут еще процедуры, в которых надо будет применить - лучше уровня модуля. Хотя опять в конкретно данном случае можно и без переменной вовсе: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 17:07 |
|
|
start [/forum/topic.php?fid=60&msg=39629274&tid=2155085]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 398ms |
0 / 0 |