
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.04.2008, 14:16
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
нужно повесить набор действий на собитий - изменение в ячейке данных пишу Private Sub Exam(N As Integer) [D1].Value = 100 [D2].Value = 100 Range("D1:D2").Select Selection.Font.ColorIndex = N Selection.Font.Bold = True End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Set r = Range("A1") Select Case r Case 0 Exam (10) Case 1 Exam (30) Case 2 Exam (55) Case Else MsgBox "Нерабочие цифры" End Select End Sub при этом происходит бесконечное зацикливание вопрос мне казалось что строки Set r = Range("A1") достато для того что бы отслеживалось изменение только в заданной ячейки но раз зацикливает значит не достаточно что надо сделать, что бы отслеживалось изменения данных только в заданной ячейке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 14:18
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
при всем при том если пишу Private Sub Exam(N As Integer) [G1].Value = 100 Range("G1").Select Selection.Font.ColorIndex = N Selection.Font.Bold = True End Sub то зацикливание не происходит... я не понимаю это глюк??? или что???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 16:40
|
|||
|---|---|---|---|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 16:45
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
спасибо, но вообще это глюк??? или таки должно быть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 18:08
|
|||
|---|---|---|---|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
Конечно, так оно и должно быть. Exam() изменяет значение ячеек d1 и d2, что немедленно вызывает новое обращение к Worksheet_Change(), причём с тем же значением в a1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 18:17
|
|||
|---|---|---|---|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
Кстати, а что мешало поставить точку останова на первый же в Worksheet_Change() оператор Set r = Range("A1") и самостоятельно всё пройти по шагам , нажимая F8 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 18:20
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
заработало (в смысле бесконечный цикл больше не получается) НО... вот листинг Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. что надо сделать, что бы отслеживалось изменения данных только в заданной ячейке? т.е. сейчас расчет запускается если А35=1 при любом изменении на листе, а неообходимо, что бы расчет запускался только, если в ячейке А35 произошли изменения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 18:32
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
ДмиДмиКонечно, так оно и должно быть. Exam() изменяет значение ячеек d1 и d2, что немедленно вызывает новое обращение к Worksheet_Change(), причём с тем же значением в a1. нет я не понимаю почему, если я меняю значения только в одной ячейке Код: plaintext 1. 2. 3. 4. 5. 6. 7. а при добавлении еще одного значения уже кирдык.. бесконечный (типа зациклило) Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 18:42
|
|||
|---|---|---|---|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
Помощниктута никакой F8 мне лично не помогает (Устало.) Оба файла - в студию, плииз. И тот, который циклит, и другой, который не циклит. Команду "Файл -- Сохранить как", надеюсь, описывать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 19:19
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
ДмиДми(Устало.) Оба файла - в студию, плииз. И тот, который циклит, и другой, который не циклит. Команду "Файл -- Сохранить как", надеюсь, описывать не надо. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. отличается процедура Exam() не глючный вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. выкладываю 1 файл.. ибо комментарий сами удалить сможете.. ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2008, 22:46
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
гы гы , а все гениальное просто.. как всегда.... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. узнала как обрабатывать ошибки в VBA и отдельное спасибо ДмиДми, его комментприи послужили толчком ... к правильному решению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.04.2008, 12:11
|
|||
|---|---|---|---|
|
|||
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!! |
|||
|
#18+
Помощник Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. отличается процедура Exam() не глючный вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. практический вопрос решен, но все же осталось не понятным почему возникает цикл только если 2 строки добавлять (см. глючный вариант)? по идее зацикливание должно происходить и при внесении 1 изменнения на лист, но не происходит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&mobile=1&tid=2162350]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 359ms |

| 0 / 0 |
