powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel, VBA
11 сообщений из 11, страница 1 из 1
Excel, VBA
    #36292045
PlsHelpMe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Есть лист экселя с данными, необходимо ловить изменение в одной ячейки и производить определенные действия. Когда ручками меняю значение в этой ячейки, все отрабатывает, когда изменения проиходят удаленно через ДДЕ, то не работает. Есть у кого-нибудь мысли?
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
    Static v As Variant
    If Me.Range("B22").Value <> v Then
         MsgBox "Yep!"
    End If
End Sub
...
Рейтинг: 0 / 0
Excel, VBA
    #36292109
почему так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, а что такое ДДЕ ?
Вот я думаю так: Событие Worksheet_Change используют когда нужно отловить заранее неизвестные изменения на листе, и в автоматическом режиме запустить макрос... Если же событие изменения данных Вам известно (Вы их сами меняете), зачем использовать данное событие? Проясните ? :)...
...
Рейтинг: 0 / 0
Excel, VBA
    #36292110
1111111???
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может добавить ОБНОВИТЬ ???
...
Рейтинг: 0 / 0
Excel, VBA
    #36292133
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range

On Error Resume Next
If Target <> Range("A1") Then
Exit Sub
Else
    MsgBox "Yep!"
End If

End Sub
...
Рейтинг: 0 / 0
Excel, VBA
    #36292203
PlsHempMe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andMegaM,

Когда обновление ячейки А1 идет через DDE, то этот когд не сработает.
...
Рейтинг: 0 / 0
Excel, VBA
    #36292257
почему так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему игнорируют мой вопрос?... как же тут тогда научишься :(...
...
Рейтинг: 0 / 0
Excel, VBA
    #36292277
PlsHelpMe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему так,

ДДЕ = DDE = Dynamic Data Exchange
Мне неважно как, но нужно поймать факт изменения значения ячейки через DDE.
...
Рейтинг: 0 / 0
Excel, VBA
    #36292385
почему так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlsHelpMeМне неважно как, но нужно поймать факт изменения значения ячейки через DDE
непонятно... вы так ставите вопрос и объясняете задачу, что даже кто знает мало вероятно что ответит... поймать факт и что сделать дальше? из какого приложения происходит обращение к Екселю и меняются данные? и т.д.
...
Рейтинг: 0 / 0
Excel, VBA
    #36292476
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот недавно было, не записал, к сожалению, источник, может поможет

отлавливание внешнего изменения ячейки

1. Откройте Excel
2. Кликните правой клавишей мыши по свободному пространству на линии меню Excel
3. Удостоверьтесь, что линия Control Toolbox отмечена птичкой
4. На панели Control Toolbox кликните по иконочке с молоточком и гаечным ключом
5. Найдите в появившемся списке RefEdit.ctrl
6. Кликните по этому имени
7. Положите его курсором на лист Excela (проведите по листу курсором с нажатой клавишей мыши)
8. Кликните правой клавишей по положенному на лист контролю
9. Найдите в меню линию Properties
10. Кликните по ней
11. Найдите в списке свойств свойство LinkedCell
12. Напечатайте во второй колоночке A1
13. Закройте панель свойств, кликнув на крестик в правом верхнем углу панели.
14. На панели Control Toolbox кликните по иконочке с угольником, линейкой и карандашом
15. Нажмите Alt-F11
16. В кодовом окне для того листа, на который вы посадили RefEdit, откройте левый верхний комбобокс
17. Выберете RefEdit1
18. В кодовом окне для того листа, на который вы посадили RefEdit, откройте правый верхний комбобокс
18. Выберете Change
19. Внутри процедуры события RefEdit1_Change напишите:

Range("B1").Value = Range("A1").Value

20. Вернитесь в лист Excel
21. При необходимости, на панели Control Toolbox кликните по иконочке с угольником, линейкой и карандашом еще раз, чтобы выйти из режима дизайна, если вы еще в нем.
22. Напечатайте что-нибудь в клеточку A1
23. Наблюдайте за содержимым B1
...
Рейтинг: 0 / 0
Excel, VBA
    #36297454
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlsHelpMe,

Для получения события изменения листа в Экселе, при экспорте на лист по ДДЕ, надо ловить изменение событием листа Calculate, предварительно сделав какую-нибудь формулу на этом листе, и включив в расчет этой формулы ячейку, измнение по ДДЕ которой вам нужно. Изменение ячейки вызовет калькулейт листа и вы получите событие

Воркшит_Чейндж рабоатть не будет
...
Рейтинг: 0 / 0
Excel, VBA
    #36297553
Aleksey_P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
testing22PlsHelpMe,

Для получения события изменения листа в Экселе, при экспорте на лист по ДДЕ, надо ловить изменение событием листа Calculate, предварительно сделав какую-нибудь формулу на этом листе, и включив в расчет этой формулы ячейку, измнение по ДДЕ которой вам нужно. Изменение ячейки вызовет калькулейт листа и вы получите событие

Воркшит_Чейндж рабоатть не будет

да. а лучше сразу придумать полезный "калькулэйт" :), т.е. чтобы что-то полезное для вас рассчитывало.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel, VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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