Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как убрать появление четырех окон при запуске книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как убрать появление четырех окон при запуске книги (Макросы/Sub)
Как убрать появление четырех окон при запуске книги
osnix11 Дата: Понедельник, 11.12.2023, 11:06 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте.
Помогите немного поправить макрос.

Он при открытии книги - автоматически запускает четыре окошка с сообщениями.
Хотя на событие открытия книги - ничего не назначено.

Как убрать это появление четырех окон при запуске книги ?
(и при изменении ячеек некоторых цветных областей (диапазон "$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]
К сообщению приложен файл: 8852014.xlsm (21.8 Kb)


Сообщение отредактировал osnix11 - Понедельник, 11.12.2023, 11:18
 
Ответить
СообщениеЗдравствуйте.
Помогите немного поправить макрос.

Он при открытии книги - автоматически запускает четыре окошка с сообщениями.
Хотя на событие открытия книги - ничего не назначено.

Как убрать это появление четырех окон при запуске книги ?
(и при изменении ячеек некоторых цветных областей (диапазон "$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]

Автор - osnix11
Дата добавления - 11.12.2023 в 11:06
Gustav Дата: Понедельник, 11.12.2023, 12:06 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2649
Репутация: 1114 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Хотя на событие открытия книги - ничего не назначено.

"Знай и люби свой файл". Ну, как не назначено-то?
[vba]
Код
Private Sub Workbook_Open()
  KArr = Range("$G$7:$M$16").Value
End Sub
[/vba]
Это из вашего файла. А четыре окошка из-за того, что инициируете, как видно из Workbook_Open, только один массив KArr, а надо еще остальные три "карра" тоже, иначе же они стартуют пустыми (со всеми вытекающими последствиями)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Хотя на событие открытия книги - ничего не назначено.

"Знай и люби свой файл". Ну, как не назначено-то?
[vba]
Код
Private Sub Workbook_Open()
  KArr = Range("$G$7:$M$16").Value
End Sub
[/vba]
Это из вашего файла. А четыре окошка из-за того, что инициируете, как видно из Workbook_Open, только один массив KArr, а надо еще остальные три "карра" тоже, иначе же они стартуют пустыми (со всеми вытекающими последствиями)

Автор - Gustav
Дата добавления - 11.12.2023 в 12:06
VovaK Дата: Понедельник, 11.12.2023, 12:07 | Сообщение № 3
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
osnix11,
Чтобы создать книгу с одним листом используйте:

Set NewBook = Workbooks.Add(xlWBATWorksheet)
или
Set NewSh = Workbooks.Add(-4167).Worksheets(1): NewSh.Name = "Имя Листа"


Всем удачи. У нас все получится.
С уважением, Владимир.
 
Ответить
Сообщениеosnix11,
Чтобы создать книгу с одним листом используйте:

Set NewBook = Workbooks.Add(xlWBATWorksheet)
или
Set NewSh = Workbooks.Add(-4167).Worksheets(1): NewSh.Name = "Имя Листа"

Автор - VovaK
Дата добавления - 11.12.2023 в 12:07
Gustav Дата: Понедельник, 11.12.2023, 12:28 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2649
Репутация: 1114 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
макрос почему-то срабатывает дважды, а не единожды.

Потому что на ячейку P14 формулы ссылаются и из жёлтой области, из серой. Соответственно, каждая из них посылает своё сообщение. А стрелка указывает только на жёлтую область. Включите режим отображения формул по Ctrl+Ё (Ctrl+~) и всё поймете (выключить обратно - еще раз нажать так же).


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 11.12.2023, 12:29
 
Ответить
Сообщение
макрос почему-то срабатывает дважды, а не единожды.

Потому что на ячейку P14 формулы ссылаются и из жёлтой области, из серой. Соответственно, каждая из них посылает своё сообщение. А стрелка указывает только на жёлтую область. Включите режим отображения формул по Ctrl+Ё (Ctrl+~) и всё поймете (выключить обратно - еще раз нажать так же).

Автор - Gustav
Дата добавления - 11.12.2023 в 12:28
osnix11 Дата: Понедельник, 11.12.2023, 12:29 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Gustav, теперь все стало понятно.
Спасибо.


Сообщение отредактировал osnix11 - Понедельник, 11.12.2023, 12:34
 
Ответить
СообщениеGustav, теперь все стало понятно.
Спасибо.

Автор - osnix11
Дата добавления - 11.12.2023 в 12:29
Gustav Дата: Понедельник, 11.12.2023, 12:34 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2649
Репутация: 1114 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
убрал событие открытия книги.

Господи, ЗАЧЕМ??? Надо было не убирать, а дописать 3 строки с инициализацией массивов KArr2, KArr3, KArr4. Вы во вчерашней теме МОИ комментарии читали? Там же был расписан весь механизм работы, до того как его реализовали в коде.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 11.12.2023, 12:36
 
Ответить
Сообщение
убрал событие открытия книги.

Господи, ЗАЧЕМ??? Надо было не убирать, а дописать 3 строки с инициализацией массивов KArr2, KArr3, KArr4. Вы во вчерашней теме МОИ комментарии читали? Там же был расписан весь механизм работы, до того как его реализовали в коде.

Автор - Gustav
Дата добавления - 11.12.2023 в 12:34
osnix11 Дата: Понедельник, 11.12.2023, 12:35 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Gustav, я все поправил.
Теперь работает.
Спасибо.
 
Ответить
СообщениеGustav, я все поправил.
Теперь работает.
Спасибо.

Автор - osnix11
Дата добавления - 11.12.2023 в 12:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как убрать появление четырех окон при запуске книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!