powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно отключить всплывающие окна в MS Excel?
11 сообщений из 11, страница 1 из 1
Как программно отключить всплывающие окна в MS Excel?
    #37805138
Azeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Я пишу прогу в VBA в MS Excel в ней у меня копируется в буфер обмена содержимое одного листа , затем создается новый лист и в него вставляется содержимое из буфера обмена, затем я после определенной работы с книгой пытаюсь ее закрыть, при закрытии книги выскакивает диалоговое сообщение "В буфере обмена находится большой объем данных. Сохранить эти данные для последующей вставки в другую программу?" с кнопками ДА, НЕТ и ОТМЕНА.
Как можно отключить это всплывающее окно. Чтобы автоматически проставлялось НЕТ.
Пробовал в программу перед закрытие книги вставить оператор xlApp.DisplayAlerts = False, чет не работает сообщение все равно выходит.
Вот код моей проги:
Код: vbnet
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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
Public Sub ResultFMUE12(y As String)
    Dim strQuery As String, vt As String, m As String
    Dim rs As DAO.Recordset, rs1 As DAO.Recordset, rs2 As DAO.Recordset
    Dim xlApp As New Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    
    strQuery = "select DOR, DOR_P from FMUE12 group by DOR, DOR_P"
    Set db = DBEngine.OpenDatabase(GetPath() & "\base.mdb")
    Set rs = db.OpenRecordset(strQuery)
    Do While Not rs.EOF
        m = db.OpenRecordset("select top 1 MM from CO25A where DOR=" & rs!dor & " and DOR_P=" & rs!dor_p)(0)    
        For i% = 1 To 2
            vt = db.OpenRecordset("select VT from VT where N_VT=" & CStr(i%))(0)      
            vtf = db.OpenRecordset("select VT_FN from VT where N_VT=" & CStr(i%))(0)        
            Set rs1 = db.OpenRecordset("Select SRR from FMUE12" & _
                                       " where DOR=" & rs!dor & " and DOR_P=" & rs!dor_p & " and VT='" & vt & "'" & _
                                       " group by SRR")
            Do While Not rs1.EOF
                Set xlBook = GetObject(CopyFile(rs!dor, rs!dor_p, m, y, i%, rs1!srr))
                Set rs2 = db.OpenRecordset("Select * from FMUE12" & _
                                           " where DOR=" & rs!dor & " and DOR_P=" & rs!dor_p & " and VT='" & vt & "' and SRR='" & rs1!srr & "'" & _
                                           " order by PU")
                s = 4         ' позиция стартовой строки.
                h = CInt(m)   ' позиция стартового столбца.
                Do While Not rs2.EOF
                    If listExist(rs2!pu, xlBook) = False Then
                        Set xlSheet = xlBook.Sheets.Add(, xlBook.Sheets(xlBook.Sheets.Count))
                        xlSheet.Name = rs2!pu
                        xlBook.Sheets("shablon").Visible = xlSheetVisible
                        Set xlSheet = xlBook.Sheets("shablon")
                        xlSheet.Cells.Copy
                        Set xlSheet = xlBook.Sheets(CStr(rs2!pu))
                        xlSheet.Paste
                        xlBook.Sheets("Shablon").Visible = xlVeryHidden
                    End If
                    Set xlSheet = xlBook.Sheets(CStr(rs2!pu))
                    xlSheet.Cells(2, 2) = rs1!srr
                    xlSheet.Cells(2, 13) = y & "г."
                    xlSheet.Cells(3, 2) = rs2!pu
                    For r% = 1 To 60
                        If r% = 29 Then s = s + 3
                        xlSheet.Cells(r% + s, h) = IIf(rs2.Fields(CStr(r%)) = 0, "", rs2.Fields(CStr(r%)))
                    Next r%
                    rs2.MoveNext
                Loop
                xlBook.Windows(1).Visible = True
                xlApp.DisplayAlerts = False      ' отключаем всплывающие окна в MS Excel.
                xlBook.Close True
                xlApp.DisplayAlerts = True  '  включаем перед выходом всплывающие окна в MS Excel.
                rs2.Close: Set rs2 = Nothing
                rs1.MoveNext
            Loop
            rs1.Close: Set rs1 = Nothing
        Next i%
    Loop
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
End Sub
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37805163
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Azeke,
а очистить буфер перед закрытием?
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37805184
Azeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажете как можно очистить буфер?
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37805190
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Azeke,

Код: vbnet
1.
Application.CutCopyMode = False
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37805197
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Azeke,
если нет ClipBoardEx, то
http://excelvba.ru/code/clipboard
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37805246
Azeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил после вставки Application.CutCopyMode = False всеравно сообщение выходит.

QValD спасибо получилось через функцию ClearClipboard.
Теперь сообщения нет.
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37805335
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AzekeПоставил после вставки Application.CutCopyMode = False всеравно сообщение выходит.
Я не на тот вопрос ответил :)
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37806127
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
...
                        xlBook.Sheets("shablon").Visible = xlSheetVisible
                        Set xlSheet = xlBook.Sheets("shablon")
                        xlSheet.Cells.Copy
                        Set xlSheet = xlBook.Sheets(CStr(rs2!pu))
                        xlSheet.Paste
                        xlBook.Sheets("Shablon").Visible = xlVeryHidden
...

используйте
Код: vbnet
1.
xlBook.Sheets("shablon").Cells.Copy xlBook.Sheets(CStr(rs2!pu)).Cells(1,1)
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37806149
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AzekeКак можно отключить это всплывающее окноapplication.displayalerts = false
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37806159
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanBapplication.displayalerts = false

AzekeПробовал вставить оператор xlApp.DisplayAlerts = False, чет не работает сообщение все равно выходит.
...
Рейтинг: 0 / 0
Как программно отключить всплывающие окна в MS Excel?
    #37806378
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge 007,
>>Пробовал в программу перед закрытие книги вставить оператор xlApp.DisplayAlerts = False
ставьте сразу!))
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно отключить всплывающие окна в MS Excel?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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