Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. Необходимо после Else (это я так думаю) вставить Module2.Change, данный макрос выполняет дополнительное удаление данных, когда происходит ввод данных. Перед этим необходимо вставить условие Код: plaintext Код: plaintext Если пользователь нажимает кнопку “Нет” данного сообщения, то ни чего не происходит. Если условие не дает результата “>” то в силу вступает основное условие, то есть выполняется код после Else без сообщения и без Module2.Change. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 20:32 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Читал, читал, не смог понять, в чем вопрос. "Необходимо после Else (это я так думаю) вставить Module2.Change" "Перед этим необходимо вставить условие" Ну так вставьте, кто вам мешает? Где вопрос-то? P.S. Если вы хотите, чтобы кто-то имел желание разбираться в вашем коде, выбросьте все, не имеющее отношение к делу. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. и далее - хочу мол, чтобы при таких-то условиях s стало 7. Мало того, что вы бытсрее получите ответ, вы еще и сами разберетесь раньше, чем сформулируете вопрос. И соблюдайте строго отступы для циклов и условий. Это упрощает чтение кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 20:45 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Дело в том, что я его вставил, но не функционирует третий вариант. Если условие не дает результата “>” то в силу вступает основное условие, то есть выполняется код после Else без сообщения и без Module2.Change. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 21:04 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
segailДело в том, что я его вставил 1) ну так и покажите конечный вариант 2) вы пошаговым выполнением умеете пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 21:10 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 21:10 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
1) Ставьте курсор на первую строчку процедуры 2) Нажмите F9 (появится точка останова на этой строке) 3) Запустите процедуру - она остановится на точке останова 4) F8 - выполнить следующую команду жмете F8 и смотрите, как идет выполнение команды. В любой момент можете посмотреть в Immediate-окне значение любого выражения, в том числе логического в условиях, проверить значения переменных и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 21:17 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 21:22 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Где то так, если я Вас правильно понял. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. При выполнение g = 5 выполняется z = 6 При выборе Да выполняются операторы s = 3, s = 2, при выборе Нет операторы s = 3, s = 2 не выполняются. Если g = 5 не выполняется, то выполняется только оператор s = 3 на основание условия d = 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 00:45 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Так. Для начала - этот код невалидный. Количество открытых IF-ов не соответствует количеству End If (это вы могли проверить и без меня, просто попытавшись скомпилировать этот код). Если вы по смыслу правильно расставили отступы, то не хватает End If для строки: If d = 3 Then 'Основное условие Ставьте там, где вы его предполагаете - будем смотреть дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 01:12 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Кроме того, я еще раз прошу выполнить мою рекомендацию и расставить отступы для строгого соблюдения иерархии. То есть If, Else и End If, касающиеся одного блока, должны находиться на одном уровне (с одинаковым отступом). Все, что находится внутри блока, должно быть с бОльшим отступом (глубже) и на одном уровне между собой. Это позволяет сразу выявлять логические ошибки (как в данном случае сразу очевидно, что открытия/закрытия блока условий непарные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 01:44 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Вроде так. !Номера условий поменялись. End If забыл, в рабочем коде она прописана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 02:16 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
segail, E=5 и g=6 на одном уровне стоят. Переделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 02:20 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Точнее так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. При выполнение g = 6 выполняется z = 7 При выборе Да выполняются операторы s = 3, s = 2, при выборе Нет операторы s = 3, s = 2 не выполняются. Если g = 6 не выполняется, то выполняется только оператор s = 3 на основание условия d = 4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 02:37 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
немножко подправлю отступы (не внося изменений) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. а вот тут у вас противоречие: segailЕсли g = 6 не выполняется, то выполняется только оператор s = 3 на основание условия d = 4 если d=4, то говорить о проверке условия g=6 нет смысла, так как этот фрагмент вообще не будет выполняться (будет выполняться ветка проверки е=5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 09:32 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
а если вы хотите, чтобы проверка условия g=6 делалась всегда, независимо от d=4, то тогда и проверять g=6 нужно раньше, чем d=4 (уровнем выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 09:36 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Shocker.Proа если вы хотите, чтобы проверка условия g=6 делалась всегда, независимо от d=4, то тогда и проверять g=6 нужно раньше, чем d=4 (уровнем выше) Здравствуйте. Объясню по-другому, если убрать е=5, g=6, z=7 и s=2, то код становится таким, каким он был до этого. То есть изначально при выполнении d = 4, выполнялся оператор s=1 или s=3 в зависимости от условия. Но возникла ситуация добавление дополнительных условий и оператора (о которых было сказано выше), не нарушая основу изначального кода. Появляется дополнительный оператор s=2 который выполняется перед Else но теперь перед выполнением выходит сообщение e = 5 которое дает пользователю право выбора, выполнить s = 1 и s = 2 до Еlse или не выполнить, на этом все. Далее если d = 4 дает переход выполнения кода после Else (так и должно быть) то здесь тоже вставлен дополнительный оператор, тот же самый s=2, вот здесь и возникает проблема. Если при прохождении условия g = 6 оно дает отрицательный результат, то выходит сообщение выбора z = 7, выполнить операторы s = 3 и s = 2? или не выполнить? Если при прохождении условия g = 6 оно дает положительный результат, то z = 7 не выполняется, а выполняется только один оператор s = 3 на основание условия d = 4 потому что уже произошел переход за Else (это я так думаю), или без него неважно. p/s 1. Перестановка условий не дает тот результат который я описал, возможно необходимо что то поменять или добавить. Не знаю. 2. Как Вы заметили после Else два оператора s = 3 и s = 2 стоят в одном блоке, это тоже не правильно, так как они выполняются два вместе или один раздельно. Просто я не знаю, куда воткнуть s = 2 после Else. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 15:54 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Забыл написать после предложения “вот здесь и возникает проблема.” Как должно быть: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 16:03 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
segail Как должно быть: Если при прохождении условия g = 6 оно дает отрицательный результат, то выходит сообщение выбора z = 7, выполнить операторы s = 3 и s = 2? или не выполнить? Если при прохождении условия g = 6 оно дает положительный результат, то z = 7 не выполняется, а выполняется только один оператор s = 3 на основание условия d = 4 потому что уже произошел переход за Else (это я так думаю), или без него неважно. ну вот так вроде в соответствии с вашим описанием: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 18:25 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Я об этом думал, И даже ответ приготовил Но вставлять дополнительно s = 3 после Else не желательно, оператор большой... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 18:38 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
segailНо вставлять дополнительно s = 3 после Else не желательно, оператор большой... Оформите s=3 в виде подпрограммы (GoSub) или процедуры (Sub, Function). И только не спрашивайте, как это сделать. Мы все-таки не для того здесь сидим, чтобы объяснять, как пользоваться кнопочкой F1 или синтаксис оператора IF . Для этого существуют учебники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 20:51 |
|
||
|
Дополнительное условие в рабочий код
|
|||
|---|---|---|---|
|
#18+
Кстати, это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Легко переделать в: Код: plaintext 1. 2. 3. 4. 5. что мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 20:56 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=137&tid=2160124]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
126ms |
get tp. blocked users: |
1ms |
| others: | 18ms |
| total: | 203ms |

| 0 / 0 |
