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

Вход

Регистрация

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

 

= Мир MS Excel/Активация макроса при изминении в определенных ячейках - Мир MS Excel

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

Excel 2016
Как сделать запуск макроса при изменении определенных ячеек, а НЕ их диапазона?

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim KeyCells As Range
     Set KeyCells = Range("A1", "A3")
      
     If Not Application.Intersect(KeyCells, Range(Target.Address)) _
         Is Nothing Then
         Call sumka
     End If
End Sub
[/vba]

То есть мне надо чтобы макрос запускался при изменении в А1 или А3, но не в А2.
 
Ответить
СообщениеКак сделать запуск макроса при изменении определенных ячеек, а НЕ их диапазона?

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim KeyCells As Range
     Set KeyCells = Range("A1", "A3")
      
     If Not Application.Intersect(KeyCells, Range(Target.Address)) _
         Is Nothing Then
         Call sumka
     End If
End Sub
[/vba]

То есть мне надо чтобы макрос запускался при изменении в А1 или А3, но не в А2.

Автор - Kokkolar
Дата добавления - 23.06.2014 в 16:51
Serge_007 Дата: Понедельник, 23.06.2014, 16:59 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПоиск по Target: http://www.excelworld.ru/forum/10-1609-1#1804

Автор - Serge_007
Дата добавления - 23.06.2014 в 16:59
Kokkolar Дата: Понедельник, 23.06.2014, 18:45 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Ничего про этот таргет не понял. Извратился вот так:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
      Dim KeyCells1, KeyCells2 As Range
      Set KeyCells1 = Range("A1")
      Set KeyCells2 = Range("A3")

      If Not Application.Intersect(KeyCells1, Range(Target.Address)) _
          Is Nothing Then
          Call sumka
      End If
      If Not Application.Intersect(KeyCells2, Range(Target.Address)) _
          Is Nothing Then
          Call sumka
      End If
End Sub
[/vba]

Работает как надо, но от такой "красоты" кода глаза вытекают.


Сообщение отредактировал Kokkolar - Понедельник, 23.06.2014, 18:46
 
Ответить
СообщениеНичего про этот таргет не понял. Извратился вот так:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
      Dim KeyCells1, KeyCells2 As Range
      Set KeyCells1 = Range("A1")
      Set KeyCells2 = Range("A3")

      If Not Application.Intersect(KeyCells1, Range(Target.Address)) _
          Is Nothing Then
          Call sumka
      End If
      If Not Application.Intersect(KeyCells2, Range(Target.Address)) _
          Is Nothing Then
          Call sumka
      End If
End Sub
[/vba]

Работает как надо, но от такой "красоты" кода глаза вытекают.

Автор - Kokkolar
Дата добавления - 23.06.2014 в 18:45
RAN Дата: Понедельник, 23.06.2014, 19:27 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Set KeyCells = Range("A1, A3")
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Set KeyCells = Range("A1, A3")
[/vba]

Автор - RAN
Дата добавления - 23.06.2014 в 19:27
_Boroda_ Дата: Понедельник, 23.06.2014, 19:54 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Предположу, что Вам нужно так:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Application.Intersect(Range("A1,A3"), Target) Is Nothing Then
           Call sumka
       End If
End Sub
[/vba]
Впрочем, Андрей выше уже написал.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПредположу, что Вам нужно так:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Application.Intersect(Range("A1,A3"), Target) Is Nothing Then
           Call sumka
       End If
End Sub
[/vba]
Впрочем, Андрей выше уже написал.

Автор - _Boroda_
Дата добавления - 23.06.2014 в 19:54
Kokkolar Дата: Понедельник, 23.06.2014, 20:00 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
RAN, я начал с этого. При такой записи это воспринимается все равно что A1:A3
 
Ответить
СообщениеRAN, я начал с этого. При такой записи это воспринимается все равно что A1:A3

Автор - Kokkolar
Дата добавления - 23.06.2014 в 20:00
_Boroda_ Дата: Понедельник, 23.06.2014, 20:04 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
При такой записи это воспринимается все равно что A1:A3
Вот специально сейчас проверил еще и в 2003-м. Все нормально работает.
Держите файл. Поиграйтесь там.
К сообщению приложен файл: 8_1.xlsm (11.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
При такой записи это воспринимается все равно что A1:A3
Вот специально сейчас проверил еще и в 2003-м. Все нормально работает.
Держите файл. Поиграйтесь там.

Автор - _Boroda_
Дата добавления - 23.06.2014 в 20:04
ShAM Дата: Понедельник, 23.06.2014, 20:20 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Вот специально сейчас проверил еще и в 2003-м. Все нормально работает.
Держите файл.

Хм, и выложил не в 2003-м :)
К сообщению приложен файл: 8_2.xls (28.5 Kb)
 
Ответить
Сообщение
Вот специально сейчас проверил еще и в 2003-м. Все нормально работает.
Держите файл.

Хм, и выложил не в 2003-м :)

Автор - ShAM
Дата добавления - 23.06.2014 в 20:20
Kokkolar Дата: Понедельник, 23.06.2014, 20:27 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Вот блин!

Вот в чем дело было. Я писал так
[vba]
Код
Range("A1", "A3")
[/vba]
а надо было кавычки общими сделать, как RAN написал. Я то и не обратил внимания.
[vba]
Код
Range("A1, A3")
[/vba]

Всем спасибо :)
 
Ответить
СообщениеВот блин!

Вот в чем дело было. Я писал так
[vba]
Код
Range("A1", "A3")
[/vba]
а надо было кавычки общими сделать, как RAN написал. Я то и не обратил внимания.
[vba]
Код
Range("A1, A3")
[/vba]

Всем спасибо :)

Автор - Kokkolar
Дата добавления - 23.06.2014 в 20:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Активация макроса при изминении в определенных ячейках (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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