powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Глюк Екцеля ThisWorkbook.Close закрывает все др.книги без сохранения
4 сообщений из 4, страница 1 из 1
Глюк Екцеля ThisWorkbook.Close закрывает все др.книги без сохранения
    #36768853
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обнаружил у меня пользователь глюк Екцеля с закрытием книги.

При закрытии книги (ThisWorkbook.close) закрывается эта книга и молчком(!) не сохраняясь (!) все остальные.

Для примера даю файл. Откройте его, успейте за 20 сек создать еще один, внесите туда изменения и дождитесь срабатывания таймера. Закроется все, не спрашивая.

офис у меня 2003 (11.8324.8324)

Используется лишь код в книге

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Option Explicit

Private Sub Workbook_Open()
 

    Call ini_timer
 
End Sub

да код в модуле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Option Explicit

Public Declare Function SetTimer Lib "user32" _
                                 (ByVal hwnd As Long, _
                                  ByVal nIDEvent As Long, _
                                  ByVal uElapse As Long, _
                                  ByVal lpTimerFunc As Long) As Long

Public Declare Function KillTimer Lib "user32" _
                                  (ByVal hwnd As Long, _
                                   ByVal nIDEvent As Long) As Long

Private lngTimerID As Long

 


Sub TimerProc(ByVal hwnd As Long, _
              ByVal uMsg As Long, _
              ByVal idEvent As Long, _
              ByVal dwTime As Long)
 
    Call deini_timer
 

    ThisWorkbook.Close SaveChanges:=True

End Sub

Public Sub deini_timer()
    lngTimerID = KillTimer(Application.hwnd, lngTimerID)
    If lngTimerID =  0  Then
        ' MsgBox "не убился таймер!"
    End If


End Sub
Public Sub ini_timer()
    lngTimerID = SetTimer(Application.hwnd, CLng( 1 ), CLng( 20000 ), AddressOf TimerProc)
    If lngTimerID =  0  Then
        ' MsgBox "Таймер не создался!"
        Exit Sub
    End If
End Sub

...
Рейтинг: 0 / 0
Глюк Екцеля ThisWorkbook.Close закрывает все др.книги без сохранения
    #36769150
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 2010 такая же фигня
...
Рейтинг: 0 / 0
Глюк Екцеля ThisWorkbook.Close закрывает все др.книги без сохранения
    #36769174
nilem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senin Viktor,

Вот примерчик был. Не подойдет?
В ЭтаКнига
Код: plaintext
1.
2.
3.
4.
Private Sub Workbook_Open()
    Dim NextTick As Date
    NextTick = Now + TimeValue("00:00:20")
    Application.OnTime NextTick, "Закрываем"
End Sub
В стандартный модуль
Код: plaintext
1.
2.
3.
Sub Закрываем()
    MsgBox "Закрываемся"
    ThisWorkbook.Close SaveChanges:=True
End Sub
...
Рейтинг: 0 / 0
Глюк Екцеля ThisWorkbook.Close закрывает все др.книги без сохранения
    #36774415
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш пример работает как и должно -закрывает только книгу.

И кто скажет мне в чем у них отличия, что ThisWorkbook.Close SaveChanges:=True начинает работать по разному?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Глюк Екцеля ThisWorkbook.Close закрывает все др.книги без сохранения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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