Он при открытии книги - автоматически запускает четыре окошка с сообщениями. Хотя на событие открытия книги - ничего не назначено.
Как убрать это появление четырех окон при запуске книги ? (и при изменении ячеек некоторых цветных областей (диапазон "$R$8:$T$15") - макрос почему-то срабатывает дважды, а не единожды. Тоже не могу понять из-за чего - ведь все диапазоны заданы одинаково.)
так выглядит макрос: [vba]
Код
Option Explicit Public KArr Public KArr2 Public KArr3 Public KArr4
Sub ChangeRng() If WorksheetFunction.Sum(KArr) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$G$7:$M$16")) Then MsgBox "Значение ячейки изменено." KArr = Range("$G$7:$M$16").Value End If
If WorksheetFunction.Sum(KArr2) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$R$8:$T$15")) Then MsgBox "Значение ячейки изменено." KArr2 = Range("$R$8:$T$15").Value End If
If WorksheetFunction.Sum(KArr3) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$B$27:$E$36")) Then MsgBox "Значение ячейки изменено." KArr3 = Range("$B$27:$E$36").Value End If
If WorksheetFunction.Sum(KArr4) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$S$23:$U$32")) Then MsgBox "Значение ячейки изменено." KArr4 = Range("$S$23:$U$32").Value End If
End Sub
[/vba]
Здравствуйте. Помогите немного поправить макрос.
Он при открытии книги - автоматически запускает четыре окошка с сообщениями. Хотя на событие открытия книги - ничего не назначено.
Как убрать это появление четырех окон при запуске книги ? (и при изменении ячеек некоторых цветных областей (диапазон "$R$8:$T$15") - макрос почему-то срабатывает дважды, а не единожды. Тоже не могу понять из-за чего - ведь все диапазоны заданы одинаково.)
так выглядит макрос: [vba]
Код
Option Explicit Public KArr Public KArr2 Public KArr3 Public KArr4
Sub ChangeRng() If WorksheetFunction.Sum(KArr) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$G$7:$M$16")) Then MsgBox "Значение ячейки изменено." KArr = Range("$G$7:$M$16").Value End If
If WorksheetFunction.Sum(KArr2) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$R$8:$T$15")) Then MsgBox "Значение ячейки изменено." KArr2 = Range("$R$8:$T$15").Value End If
If WorksheetFunction.Sum(KArr3) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$B$27:$E$36")) Then MsgBox "Значение ячейки изменено." KArr3 = Range("$B$27:$E$36").Value End If
If WorksheetFunction.Sum(KArr4) <> WorksheetFunction.Sum(Worksheets("Лист").Range("$S$23:$U$32")) Then MsgBox "Значение ячейки изменено." KArr4 = Range("$S$23:$U$32").Value End If
Хотя на событие открытия книги - ничего не назначено.
"Знай и люби свой файл". Ну, как не назначено-то? [vba]
Код
Private Sub Workbook_Open() KArr = Range("$G$7:$M$16").Value End Sub
[/vba] Это из вашего файла. А четыре окошка из-за того, что инициируете, как видно из Workbook_Open, только один массив KArr, а надо еще остальные три "карра" тоже, иначе же они стартуют пустыми (со всеми вытекающими последствиями)
Хотя на событие открытия книги - ничего не назначено.
"Знай и люби свой файл". Ну, как не назначено-то? [vba]
Код
Private Sub Workbook_Open() KArr = Range("$G$7:$M$16").Value End Sub
[/vba] Это из вашего файла. А четыре окошка из-за того, что инициируете, как видно из Workbook_Open, только один массив KArr, а надо еще остальные три "карра" тоже, иначе же они стартуют пустыми (со всеми вытекающими последствиями)Gustav
макрос почему-то срабатывает дважды, а не единожды.
Потому что на ячейку P14 формулы ссылаются и из жёлтой области, из серой. Соответственно, каждая из них посылает своё сообщение. А стрелка указывает только на жёлтую область. Включите режим отображения формул по Ctrl+Ё (Ctrl+~) и всё поймете (выключить обратно - еще раз нажать так же).
макрос почему-то срабатывает дважды, а не единожды.
Потому что на ячейку P14 формулы ссылаются и из жёлтой области, из серой. Соответственно, каждая из них посылает своё сообщение. А стрелка указывает только на жёлтую область. Включите режим отображения формул по Ctrl+Ё (Ctrl+~) и всё поймете (выключить обратно - еще раз нажать так же).Gustav
Господи, ЗАЧЕМ??? Надо было не убирать, а дописать 3 строки с инициализацией массивов KArr2, KArr3, KArr4. Вы во вчерашней теме МОИ комментарии читали? Там же был расписан весь механизм работы, до того как его реализовали в коде.
Господи, ЗАЧЕМ??? Надо было не убирать, а дописать 3 строки с инициализацией массивов KArr2, KArr3, KArr4. Вы во вчерашней теме МОИ комментарии читали? Там же был расписан весь механизм работы, до того как его реализовали в коде.Gustav