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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос не должен работать на листах с определенным именем - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос не должен работать на листах с определенным именем (Макросы/Sub)
Макрос не должен работать на листах с определенным именем
olegglebovich Дата: Суббота, 16.01.2021, 10:20 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте! Уважаемые Гуру, задачка в следующем: нужно, чтобы макрос не работал на листах с определенным именем. Нашел в инете код,
но при вставке в модуль рабочей книги он работает на всех листах. Подскажите, где ошибка.

[vba]
Код
' То, что нашел
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' Указаны имена нужных листов
If InStr(1, "|Лист3|Лист4|Лист5|Лист6|Лист7|", "|" & Sh.Name & "|", vbTextCompare) Then Exit Sub
' Мой код
Dim cell As Range
For Each cell In Range("G29:J29")
cell = cell.Offset(-1)
If cell >= cell.Offset(4) Then
cell.Interior.Color = RGB(255, 0, 0)
ElseIf cell > cell.Offset(3) Then
cell.Interior.Color = RGB(0, 255, 0)
Else
cell.Interior.Color = RGB(255, 242, 204)
End If
Next cell

End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте! Уважаемые Гуру, задачка в следующем: нужно, чтобы макрос не работал на листах с определенным именем. Нашел в инете код,
но при вставке в модуль рабочей книги он работает на всех листах. Подскажите, где ошибка.

[vba]
Код
' То, что нашел
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' Указаны имена нужных листов
If InStr(1, "|Лист3|Лист4|Лист5|Лист6|Лист7|", "|" & Sh.Name & "|", vbTextCompare) Then Exit Sub
' Мой код
Dim cell As Range
For Each cell In Range("G29:J29")
cell = cell.Offset(-1)
If cell >= cell.Offset(4) Then
cell.Interior.Color = RGB(255, 0, 0)
ElseIf cell > cell.Offset(3) Then
cell.Interior.Color = RGB(0, 255, 0)
Else
cell.Interior.Color = RGB(255, 242, 204)
End If
Next cell

End Sub
[/vba]

Автор - olegglebovich
Дата добавления - 16.01.2021 в 10:20
Pelena Дата: Суббота, 16.01.2021, 11:15 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 17563
Репутация: 3910 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Здравствуйте.
В соответствии с кодом здесь "|Лист3|Лист4|Лист5|Лист6|Лист7|" указываются имена НЕнужных листов

Так как макрос в модуле книги, Range("G29:J29") надо заменить на Sh.Range("G29:J29")

Workbook_SheetSelectionChange - на мой взгляд неудачно выбрано событие, макрос будет срабатывать при любом клике мышкой на листе. Вариант, предложенный в предыдущей теме лучше


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЗдравствуйте.
В соответствии с кодом здесь "|Лист3|Лист4|Лист5|Лист6|Лист7|" указываются имена НЕнужных листов

Так как макрос в модуле книги, Range("G29:J29") надо заменить на Sh.Range("G29:J29")

Workbook_SheetSelectionChange - на мой взгляд неудачно выбрано событие, макрос будет срабатывать при любом клике мышкой на листе. Вариант, предложенный в предыдущей теме лучше

Автор - Pelena
Дата добавления - 16.01.2021 в 11:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос не должен работать на листах с определенным именем (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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