|
|
|
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:16 |
|
||
|
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, 14:18 |
|
||
|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:40 |
|
||
|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!!
|
|||
|---|---|---|---|
|
#18+
спасибо, но вообще это глюк??? или таки должно быть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:45 |
|
||
|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!!
|
|||
|---|---|---|---|
|
#18+
Конечно, так оно и должно быть. Exam() изменяет значение ячеек d1 и d2, что немедленно вызывает новое обращение к Worksheet_Change(), причём с тем же значением в a1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 18:08 |
|
||
|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!!
|
|||
|---|---|---|---|
|
#18+
Кстати, а что мешало поставить точку останова на первый же в Worksheet_Change() оператор Set r = Range("A1") и самостоятельно всё пройти по шагам , нажимая F8 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 18:17 |
|
||
|
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:20 |
|
||
|
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:32 |
|
||
|
Private Sub Worksheet_Change(ByVal Target As Range) помощи плиз!!!!
|
|||
|---|---|---|---|
|
#18+
Помощниктута никакой F8 мне лично не помогает (Устало.) Оба файла - в студию, плииз. И тот, который циклит, и другой, который не циклит. Команду "Файл -- Сохранить как", надеюсь, описывать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 18:42 |
|
||
|
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, 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. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. узнала как обрабатывать ошибки в VBA и отдельное спасибо ДмиДми, его комментприи послужили толчком ... к правильному решению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 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. отличается процедура Exam() не глючный вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. практический вопрос решен, но все же осталось не понятным почему возникает цикл только если 2 строки добавлять (см. глючный вариант)? по идее зацикливание должно происходить и при внесении 1 изменнения на лист, но не происходит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2008, 12:11 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35284290&tid=2162350]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 382ms |

| 0 / 0 |
