powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проигнорировать сообщение MS Excel в коде?
17 сообщений из 17, страница 1 из 1
Как проигнорировать сообщение MS Excel в коде?
    #36229768
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как сделать, чтобы сообщение от Excel "заменить содержимое конечных ячеек" не появлялось на экране (по умолчанию ответить на него "ДА") ?
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36229774
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется в виду, как в коде программы написать такую операцию..
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36229777
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у объекта Application есть замечательное свойство по этому поводу
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36230393
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Application.DisplayAlerts=False
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36231890
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое =) а на них по умолчанию ДА отвечаться будет?
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36231902
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка =( Method DisplayAlerts of object Application failed =(
Не работает
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36231982
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shun,

ну тогда покажите код.
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36232036
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
Public Sub ALV_SAP_Exit()

' я тут ставила но не работает 

' Константы
TITLE_ROW = Sheets("Настройки").Range("B1").Value
SEQ_COL = Sheets("Настройки").Range("B2").Value
KEY_COL_F = Sheets("Настройки").Range("B3").Value
KEY_COL_T = Sheets("Настройки").Range("C3").Value
VAL_COL_F = Sheets("Настройки").Range("B4").Value
VAL_COL_T = Sheets("Настройки").Range("C4").Value
DATA_ROW = Sheets("Настройки").Range("B5").Value
HEADER_ROW_F = Sheets("Настройки").Range("B6").Value
HEADER_ROW_T = Sheets("Настройки").Range("C6").Value
CHECK_ROW = Sheets("Настройки").Range("B7").Value
FOOTER_01 = Sheets("Настройки").Range("B8").Value
FOOTER_02 = Sheets("Настройки").Range("B9").Value
FOOTER_03 = Sheets("Настройки").Range("B10").Value
FOOTER_04 = Sheets("Настройки").Range("B11").Value
FOOTER_05 = Sheets("Настройки").Range("B12").Value

    
' Обновляем основную сводную таблицу на активном листе 'Регистр'
 
 Sheets("Регистр").Select
 ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
 Application.DisplayAlerts = False
 
' Делаем скрытыми столбцы показателей, для которых нет транзакционных данных

    i =  0 
    k =  0 
 
    For k = VAL_COL_F To VAL_COL_T Step  2 
        If Cells(CHECK_ROW, k).Value = "" Then
           Range(Columns(k), Columns(VAL_COL_T)).Select
    '       Selection.EntireColumn.Hidden = True
           i = k -  1 
           Exit For
        End If
    Next k
    

    
' Производим нумерацию строк
    h =  1 
    For n = DATA_ROW To  65536  Step  1 
        t =  0 
        For j = KEY_COL_F To KEY_COL_T Step  1 
            If Cells(n, j) <> "" Then
               Cells(n, SEQ_COL) = h
               h = h +  1 
               t =  1 
               Exit For
            End If
        Next j
        If t =  0  Then
           Exit For
        End If
    Next n
    
    Range(Cells(DATA_ROW, SEQ_COL), Cells(n -  1 , SEQ_COL)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    
    Range("A1").Select
    
  Set r = Sheets("Регистр").UsedRange
  endstr = r.Rows.Count
    
    endstr = endstr +  4 
    
 ' Вставляем данные с листа формат
 
    Sheets("Format").Select
    Set p = Sheets("Format").UsedRange
    pendstr = p.Rows.Count
    Range(Cells( 2 ,  4 ), Cells(pendstr,  4 )).Select
    Selection.Copy
    Sheets("Регистр").Select
    Range(Cells( 10 ,  19 ), Cells(endstr -  4 ,  19 )).Select
    ActiveSheet.Paste
    
    Sheets("Format").Select
    Set p = Sheets("Format").UsedRange
    pendstr = p.Rows.Count
    Range(Cells( 2 ,  10 ), Cells(pendstr,  10 )).Select
    Selection.Copy
    Sheets("Регистр").Select
    Range(Cells( 10 ,  20 ), Cells(endstr -  4 ,  20 )).Select
    ActiveSheet.Paste
    
    Sheets("Format").Select
    Set p = Sheets("Format").UsedRange
    pendstr = p.Rows.Count
    Range(Cells( 2 ,  7 ), Cells(pendstr,  7 )).Select
    Selection.Copy
    Sheets("Регистр").Select
    Range(Cells( 10 ,  22 ), Cells(endstr -  4 ,  22 )).Select
    ActiveSheet.Paste
    
    
    Set d = Sheets("Регистр").UsedRange
    endstr1 = d.Rows.Count
    

' Разносим значения по кодам продукции и вычисляем итоги

    
    For i =  7  To d.Rows.Count -  1 
    avalue = Trim(d.Cells(i,  19 ).Value)
    bvalue = Trim(d.Cells(i,  22 ).Value)
    cvalue = Trim(d.Cells(i,  20 ).Value)
    bvalue = Replace(bvalue, ",", ".")
    cvalue = Replace(cvalue, ",", ".")
    
    If avalue =  610  Then
    d.Cells(i,  9 ) = bvalue
    d.Cells(i,  10 ) = cvalue
    a610 = a610 + Val(bvalue)
    b610 = b610 + Val(cvalue)
    End If
    
    If avalue =  620  Then
    d.Cells(i,  11 ) = bvalue
    d.Cells(i,  12 ) = cvalue
    a620 = a620 + Val(bvalue)
    b620 = b620 + Val(cvalue)
    End If
    
    If avalue =  630  Then
    d.Cells(i,  13 ) = bvalue
    d.Cells(i,  14 ) = cvalue
    a630 = a630 + Val(bvalue)
    b630 = b630 + Val(cvalue)
    End If
    
    If avalue =  640  Then
    d.Cells(i,  15 ) = bvalue
    d.Cells(i,  16 ) = cvalue
    a640 = a640 + Val(bvalue)
    b640 = b640 + Val(cvalue)
    End If
    
    If avalue =  650  Then
    d.Cells(i,  17 ) = bvalue
    d.Cells(i,  18 ) = cvalue
    a650 = a650 + Val(bvalue)
    b650 = b650 + Val(cvalue)
    End If
    
    Next i
    
    
    
    
    
    
' Вставляем итоговые значения по  кодам продукции

For i =  7  To endstr1
If Cells(i,  2 ).Value = "Общий итог" Then

    d.Cells(i,  9 ).Value = a610
    d.Cells(i,  10 ).Value = b610
    
    d.Cells(i,  11 ).Value = a620
    d.Cells(i,  12 ).Value = b620
    
    d.Cells(i,  13 ).Value = a630
    d.Cells(i,  14 ).Value = b630
    
    d.Cells(i,  15 ).Value = a640
    d.Cells(i,  16 ).Value = b640
    
    d.Cells(i,  17 ).Value = a650
    d.Cells(i,  18 ).Value = b650
    k = i
    
    End If
    

Next i
    
    
    
    
    
    For i =  9  To k
    
    Range(Cells( 10 ,  4 ), Cells(k,  18 )).Select
    With Selection.Font
        .Name = "Arial Cyr"
        .FontStyle = "обычный"
        .Size =  10 
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    
    Selection.Interior.ColorIndex = xlNone
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With

Next i
 
 
    
For i =  7  To k

d.Cells(i,  9 ).NumberFormat = "0.000"
d.Cells(i,  10 ).NumberFormat = "0.00"
d.Cells(i,  11 ).NumberFormat = "0.000"
d.Cells(i,  12 ).NumberFormat = "0.00"
d.Cells(i,  13 ).NumberFormat = "0.000"
d.Cells(i,  14 ).NumberFormat = "0.00"
d.Cells(i,  15 ).NumberFormat = "0.000"
d.Cells(i,  16 ).NumberFormat = "0.00"
d.Cells(i,  17 ).NumberFormat = "0.000"
d.Cells(i,  18 ).NumberFormat = "0.00"
d.Cells(i,  8 ).EntireColumn.Hidden = True
d.Cells(i,  19 ).EntireColumn.Hidden = True
d.Cells(i,  20 ).EntireColumn.Hidden = True
d.Cells(i,  22 ).EntireColumn.Hidden = True
d.Cells(i,  6 ).EntireColumn.Hidden = True
d.Cells(i,  7 ).EntireColumn.Hidden = True


Next i

    

    
    
  Sheets("Подпись").Select
  Rows("1:5").Select
  Selection.Copy
  Sheets("Регистр").Select
  Range(Cells(endstr,  1 ), Cells(endstr,  1 )).Select
  Selection.Insert Shift:=xlDown
  
  
  
  
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = "$A$1:$S$35"
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints( 0 . 787401575 )
        .RightMargin = Application.InchesToPoints( 0 . 787401575 )
        .TopMargin = Application.InchesToPoints( 0 . 984251969 )
        .BottomMargin = Application.InchesToPoints( 0 . 984251969 )
        .HeaderMargin = Application.InchesToPoints( 0 . 5 )
        .FooterMargin = Application.InchesToPoints( 0 . 5 )
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality =  600 
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide =  1 
        .FitToPagesTall = False

    End With



 
End Sub
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36234175
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эх блин ..... =( не знает нкто
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36234203
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я просто пока чайник в VBA -)

Может сюда (приложила модуль с объявлением переменных) надо создать объект Application? Я просто не знаю синтаксиса и что и где написать надо ... =(


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub ALV_CUS_Exit()

  Dim objs As ChartObjects
  
  Dim obj As ChartObject
  Dim sheet As Worksheet
  Dim r As Range
  For Each sheet In Sheets
    Set objs = sheet.ChartObjects
    For Each obj In objs
      Set r = Sheets("RawData").UsedRange
      obj.Chart.SetSourceData Source:=r
    Next obj
  Next sheet
End Sub
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36236144
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shun,

вы этот код откуда запускаете ?
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36236163
2 Shun ,
Где Вы этот код достали ? :)... У Вас есть побольше ? Выкладывайте!
Можно маленькое ламерское замечание?
Подумайте как можно разумнее использовать цикли, вот например здесь:
вместо:
Код: plaintext
1.
2.
3.
4.
d.Cells(i,  9 ).NumberFormat = "0.000"
d.Cells(i,  10 ).NumberFormat = "0.00"
d.Cells(i,  11 ).NumberFormat = "0.000"
d.Cells(i,  12 ).NumberFormat = "0.00"
d.Cells(i,  13 ).NumberFormat = "0.000"

я бы сделал так:
Код: plaintext
d.Cells(i, i+ 8 ).NumberFormat = "0.000"

И еще, что бы копировать, не обязательно выделять (это то, куда меня тыкали постоянно):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub MozhnaTak()
Sheets("1").Cells( 1 ,  1 ).Copy
Sheets("3").Cells( 1 ,  1 ).PasteSpecial
End Sub

Sub ANeTak()
Sheets("1").Cells( 1 ,  1 ).Select
Selection.Copy
Sheets("3").Cells( 1 ,  1 ).Select
Selection.PasteSpecial
End Sub
При этом можна находиться на sheets("2") например...
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36236176
big-dukeShun,

вы этот код откуда запускаете ?

Присоединяюсь к вопросу. Прогуглил - такая проблема возникает при использовати с Internet Explorer...

2 Shun ,
Попробуйте, просто так:
Код: plaintext
1.
2.
Sub NachnemSProstogo
Application.DisplayAlerts=False
End Sub

Есть ошибка ?
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36236229
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
ThisWorkbook.Application.DisplayAlerts=False
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36236732
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Тоже чайник
> Можно маленькое ламерское замечание?
> Подумайте как можно разумнее использовать цикли, вот например здесь:
> вместо:
>
> d.Cells(i, 9).NumberFormat = "0.000"
> d.Cells(i, 10).NumberFormat = "0.00"
> d.Cells(i, 11).NumberFormat = "0.000"
> d.Cells(i, 12).NumberFormat = "0.00"
> d.Cells(i, 13).NumberFormat = "0.000"
> я бы сделал так:
>
> d.Cells(i, i+8).NumberFormat = "0.000"

Эти коды приведут к разному результату.
Если советовать оптимизацию, то цикл можно совсем убрать и переписать как-то так:
Код: plaintext
1.
2.
3.
4.
5.
    d.Range("I7:I" & CStr(k) & ",K7:K" & CStr(k) & _
 ",M7:M" & CStr(k) & ",O7:O" & CStr(k) & ",Q7:Q" & _
CStr(k)).NumberFormat = "0.000"
    d.Range("J7:J" & CStr(k) & ",L7:L" & CStr(k) & ",N7:N" & _
CStr(k) & ",P7:P" & CStr(k) & ",R7:R" & CStr(k)).NumberFormat = "0.00"
    d.Range("F:H,S:T,V").EntireColumn.Hidden = True

Ещё, я бы посоветовал поставить Option Explicit в начале модуля и пообъявлять все переменные.
И например это:
Код: plaintext
1.
2.
3.
...
Range(Cells( 10 ,  4 ), Cells(k,  18 )).Select
With Selection.Font
....
можно переписать на это:
Код: plaintext
1.
2.
...
With Range(Cells( 10 ,  4 ), Cells(k,  18 )).Font
....

Но это придет с опытом, не переживай

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36239842
astatsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже чайник 2 Shun ,
И еще, что бы копировать, не обязательно выделять (это то, куда меня тыкали постоянно):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub MozhnaTak()
Sheets("1").Cells( 1 ,  1 ).Copy
Sheets("3").Cells( 1 ,  1 ).PasteSpecial
End Sub

Sub ANeTak()
Sheets("1").Cells( 1 ,  1 ).Select
Selection.Copy
Sheets("3").Cells( 1 ,  1 ).Select
Selection.PasteSpecial
End Sub
При этом можна находиться на sheets("2") например...
Я бы сказал, не только чтобы копировать, но и вообще выделять не нужно.
Код: plaintext
1.
2.
Sub ATakEsheLychshe()
Sheets("1").Cells( 1 ,  1 ).Copy(Sheets("3").Cells( 1 ,  1 ))
End Sub
...
Рейтинг: 0 / 0
Как проигнорировать сообщение MS Excel в коде?
    #36255226
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы =) Я переписала модуль так чтобы просто сообщения не было =) теперь уже всё позади =))))
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проигнорировать сообщение MS Excel в коде?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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