Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel VBA Save SaveAs MS Office 2003 / 15 сообщений из 15, страница 1 из 1
14.09.2006, 13:17:09
    #33986889
QnX
QnX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
Код: plaintext
1.
2.
3.
4.
5.
6.
Saved Property
Remarks
If a workbook has never been saved, its Path property returns an empty string ("").

You can set this property to True if you want to close a modified workbook without either saving it or being prompted to save it.


Код: plaintext
1.
2.
3.
4.
5.
6.
    Dim MsgRes
    
    If Not ActiveWorkbook Is Nothing Then
    If Not ActiveWorkbook.Saved Then
            ActiveWorkbook.Save
    End If

Проблема в следующем. Если один раз документ сохранился, то метод Saved всегда возвращает True, потому что Path определен ....

Как с этим бороться ? И еще я так понимаю, что диалоговых окон у меня не появляется именно по той же причине, что он считает, что он знает куда сохранять и сохраняет молча .....

Подскажите, что делать ?
...
Рейтинг: 0 / 0
14.09.2006, 13:45:43
    #33987073
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
C чем бороться? все же ясно написано, что saved управляется тем, были изменения после сохранения или нет. path - был ли файл записан вообще или нет.
...
Рейтинг: 0 / 0
14.09.2006, 13:58:22
    #33987141
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
А чего вообще пытаешься добиться? Из твоего кода ничего не понять :-(

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
14.09.2006, 14:05:52
    #33987188
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
QnXЕсли один раз документ сохранился, то метод Saved всегда возвращает True, потому что Path определен ....

Чепуха - Path тут вообще не при чем. Попробуй след. код из любой единожды сохраненной книги:

Код: plaintext
1.
2.
3.
4.
5.
Sub test()
    [a1] =  2 
    MsgBox ActiveWorkbook.Saved
    ActiveWorkbook.Save
    MsgBox ActiveWorkbook.Saved
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
14.09.2006, 14:18:39
    #33987272
QnX
QnX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
KL (XL)А чего вообще пытаешься добиться? Из твоего кода ничего не понять :-(

KL
[MVP - Microsoft Excel]

Вообще аттачу файл к бату. Все происходит нормально, только вот файл должен перед этим быть сохранен.
...
Рейтинг: 0 / 0
14.09.2006, 14:19:24
    #33987277
QnX
QnX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
vbaproC чем бороться? все же ясно написано, что saved управляется тем, были изменения после сохранения или нет. path - был ли файл записан вообще или нет. Он вновь открытый, какие там изменения .... Книга новая ...
...
Рейтинг: 0 / 0
14.09.2006, 14:19:38
    #33987279
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
QnX...он считает, что он знает куда сохранять и сохраняет молча...

Он не "считает", а точно знает куда сохранять, т.к. он (Excel) изучал правила игры перед началом партии :)

1) если файл не был сохранен ранее, и путь не указан, то Save и SaveAs cохранят по умолчанию в активную директорию

2) если файл был сохранен и путь не указан, то Save и SaveAs cохранят по умолчанию в директорию, откуда файл был открыт (или посл. раз сохранен)
...
Рейтинг: 0 / 0
14.09.2006, 14:23:38
    #33987302
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
QnXОн вновь открытый, какие там изменения .... Книга новая ...
у новой книги Path="", Saved=True,
внес изменения: Path="", Saved=False,
сохранил: Path="..адрес..", Saved=True;
снова внес изменения: Path="..адрес..", Saved=False

или не о том речь?
...
Рейтинг: 0 / 0
14.09.2006, 14:28:41
    #33987333
QnX
QnX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
Ну ка попробую .... Точно Saved то TRUE .....
...
Рейтинг: 0 / 0
14.09.2006, 18:03:59
    #33988416
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
у меня получалось, что если одной из открытой книг сделать saved=true, то другие открытые (с изменениями) при закрытие екцеля закрывались ничего не спрашивая и не сохраняя. Нах этот saved
...
Рейтинг: 0 / 0
14.09.2006, 19:30:00
    #33988663
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
Senin Viktorу меня получалось, что если одной из открытой книг сделать saved=true, то другие открытые (с изменениями) при закрытие екцеля закрывались ничего не спрашивая и не сохраняя. Нах этот saved

А код покажешь? А то сумнение у меня, что эксперимент был криво поставлен ;-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
14.09.2006, 21:53:47
    #33988822
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
KL (XL) Senin Viktorу меня получалось, что если одной из открытой книг сделать saved=true, то другие открытые (с изменениями) при закрытие екцеля закрывались ничего не спрашивая и не сохраняя. Нах этот saved

А код покажешь? А то сумнение у меня, что эксперимент был криво поставлен ;-)

KL
[MVP - Microsoft Excel]

Я что-то тоже сомневаюсь и тоже стало интересно и тоже провел эксперимент. Вот код, который я привязал к кнопке на листе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub CommandButton1_Click()
Dim WB As Workbook

    For Each WB In Workbooks
        MsgBox "Name:  " & WB.Name & vbLf _
                & "Saved: " & WB.Saved & vbLf _
                & "Path:  " & WB.Path
    
    Next WB
End Sub
создал три книги, проверил, внес в одну изменение, проверил, потом её сохранил, снова проверил. Saved=True только у тех, которую сохранил и которую не менял.
...
Рейтинг: 0 / 0
15.09.2006, 12:04:25
    #33989728
QnX
QnX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
Значит сделал я так ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub ОтправитьПисьмом()
        If Not ActiveWorkbook Is Nothing Then
        If ActiveWorkbook.Path = "" And ActiveWorkbook.Saved Then Exit Sub
        If ActiveWorkbook.Path = "" And Not ActiveWorkbook.Saved Then
            MesRes = MsgBox("Для начала нужно сохранить документ ... Сохранить ?", vbYesNo, "Внимание")
            If MesRes = vbYes Then
                ActiveWorkbook.SaveAs ??? FileFormat:=xlNormal, _
                Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
                CreateBackup:=False
            End If
        ElseIf ActiveWorkbook.Path <> "" And Not ActiveWorkbook.Saved Then
                ActiveWorkbook.Save
        End If
    End If
End Sub

Вот не знаю что вместо вопросов нужно вписать, чтобы он все-таки показал диалог сохранения файла ! Сейчас либо ругается , на пустое имя файла, либо молча сохраняет !
...
Рейтинг: 0 / 0
15.09.2006, 12:44:05
    #33989927
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
QnX...Вот не знаю что вместо вопросов нужно вписать, чтобы он все-таки показал диалог сохранения файла !

используй
Код: plaintext
Application.Dialogs(xlDialogSaveAs).Show
вместо
Код: plaintext
ActiveWorkbook.SaveAs
...
Рейтинг: 0 / 0
15.09.2006, 13:03:21
    #33990008
QnX
QnX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA Save SaveAs MS Office 2003
Спасибо !
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel VBA Save SaveAs MS Office 2003 / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]