|
|
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Также посмотрите внимательно, где alex77755 посоветовал вам определить переменную Flag и где вы ее определили. Также внимательно посмотрите синтаксис Dim Код: plaintext 1. Ой сколько читал, кто как настойчиво советует А почему не так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:16 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
alegarh, Вы всё-таки приложите/вышлете образец вашего творчества в виде файла? Поскольку ваш код настолько неоптимален, что все эти рассуждения о DoEvents и Ctrl+Break просто ничто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:20 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюА почему не так: тебе, ЦЭ, все можно, особенно переходить дорогу на красный свет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:20 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЦипихович ЭндрюА почему не так: тебе, ЦЭ, все можно, особенно переходить дорогу на красный свет. Добрый дяденька Я же говорю, дискуссий много лучше занять больше места и не дискутировать, чтов ВБА проблема с длиной кода??? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:26 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюДобрый дяденька Я же говорю, дискуссий много лучше занять больше места и не дискутировать, чтов ВБА проблема с длиной кода??? Чего ты прикопался? Я поправил у человека ошибку, а если тебе хочется подискутировать о том, сколько должно быть строк в твоем коде, заведи себе тему и там дискутируй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:30 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.ProalegarhМетод Select из класса PlotArea завершен не верно. Смысл было кнопку городить еслши все равно с ошибкой вылетает. Можно действительно Cntr+Breake и все :) Если бы спрашивали, как остановить макрос, получили бы другой совет. Я думаю, проблема в том, что как только вы уводите фокус с активной диаграммы на кнопку, у вас перестает быть актуальным объект ActiveChart. Замените его везде на: Код: plaintext Да не конечно хочется сделать все хорошо, поэтому с кнопкой лучше :) Я поменял везде Код: plaintext 1. 2. 3. 4. 5. 6. 7. Но при запуске сразу ошибка 438: объект не поддерживает это свойство или метод. Да даже не в этом дело. Почему вообще программа идет на следующий виток цикла, если я прописал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Она же после нажатия кнопки должна сделать i = LastRow проверить While < LastRow и выйти из цикла, а она опять внутрь заходит. Т.е. не срабатывает чтоли кнопка. Вывел в ячейку значение i. Так вот после кнопки STOP ни фига оно не LastRow, а остается таким же какое оно в цикле. Т.е. все-таки не срабатывает кнопка. Код: plaintext 1. 2. Поправил, только не понятно почему через запятую нельзя, в Фортране вроде можно одинаковые типы через запятую указывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:34 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
alegarhЯ поменял везде Sheets("Data").ChartObjects(1).PlotArea.Select Но при запуске сразу ошибка 438: объект не поддерживает это свойство или метод. Тогда попробуйте ThisWorkbook.Charts(1) Без вашего файла пробовать самому проблематично, поэтому я даю теоретические советы alegarhДа даже не в этом дело. Почему вообще программа идет на следующий виток цикла, если я прописал А кто сказал, что она идет на следующий виток? Не должна. Дело в том, что когда вы увели фокус с диаграммы, но еще не нажали на кнопку, цикл продолжает крутиться, соответственно активной диаграммы нет, вот и возникает ошибка. alegarhОна же после нажатия кнопки должна сделать i = LastRow проверить While < LastRow и выйти из цикла, а она опять внутрь заходит. Т.е. не срабатывает чтоли кнопка. Вывел в ячейку значение i. Так вот после кнопки STOP ни фига оно не LastRow, а остается таким же какое оно в цикле. Т.е. все-таки не срабатывает кнопка. Или выкладывайте файл и код или осваивайте трассировку. alegarh Поправил, только не понятно почему через запятую нельзя, в Фортране вроде можно одинаковые типы через запятую указывать. Патамушта-марамушта. Таков синтаксис, это не фортран. Мне претензии предъявлять бессмысленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:45 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.ProalegarhЯ поменял везде Sheets("Data").ChartObjects(1).PlotArea.Select Но при запуске сразу ошибка 438: объект не поддерживает это свойство или метод. Тогда попробуйте ThisWorkbook.Charts(1) Без вашего файла пробовать самому проблематично, поэтому я даю теоретические советы alegarhДа даже не в этом дело. Почему вообще программа идет на следующий виток цикла, если я прописал А кто сказал, что она идет на следующий виток? Не должна. Дело в том, что когда вы увели фокус с диаграммы, но еще не нажали на кнопку, цикл продолжает крутиться, соответственно активной диаграммы нет, вот и возникает ошибка. alegarhОна же после нажатия кнопки должна сделать i = LastRow проверить While < LastRow и выйти из цикла, а она опять внутрь заходит. Т.е. не срабатывает чтоли кнопка. Вывел в ячейку значение i. Так вот после кнопки STOP ни фига оно не LastRow, а остается таким же какое оно в цикле. Т.е. все-таки не срабатывает кнопка. Или выкладывайте файл и код или осваивайте трассировку. alegarh Поправил, только не понятно почему через запятую нельзя, в Фортране вроде можно одинаковые типы через запятую указывать. Патамушта-марамушта. Таков синтаксис, это не фортран. Мне претензии предъявлять бессмысленно. Я ни в коем случае ничего вам не предъявляю и вообще жутко благодарен, что вы уделили мне столько времени. Что такое трасировка я не знваю. Выложить хотел файл, но даже после того как я оставил в нем 3 строки в таблице, он занимает 170 лИ и не выкладывается. Отправил вам и Andre_tm на почту указанную в профиле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:03 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Тогда попробуйте ThisWorkbook.Charts(1) Без вашего файла пробовать самому проблематично, поэтому я даю теоретические советы Так тоже не работает ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:07 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
alegarhВыложить хотел файл, но даже после того как я оставил в нем 3 строки в таблице, он занимает 170 лИ и не выкладывается. даже не знаю, имеет ли смысл рассказывать вам о существовании архиваторов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:15 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Я уже с этим VBA совсем туплю, спасибо что просвятили :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:19 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
сам себе подсказал... :) итак 1) Код: plaintext 2) зачем нужно вот это? вроде без нее все выглядит так же Код: plaintext 3) ща разберусь с кнопкой стоп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:24 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro 3) ща разберусь с кнопкой стоп Тут тоже все понятно вы определили переменную Flag ДВАЖДЫ это опять оказались РАЗНЫЕ переменные. Уберите определение переменной из модуля листа и все заработает А еще я вам давал совет - сделать DoEvents во внутреннем цикле иначе пока идет внутренний цикл, на кнопку нажать нельзя - получается дикое тупление А еще лучше - не дожидайтесь окончания цикла задержки, а выходите сразу: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:32 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro А еще лучше - не дожидайтесь окончания цикла задержки, а выходите сразу: Код: plaintext 1. 2. 3. сорри, у вас там наоборот, так что так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:34 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.ProShocker.Pro А еще лучше - не дожидайтесь окончания цикла задержки, а выходите сразу: Код: plaintext 1. 2. 3. сорри, у вас там наоборот, так что так: Код: plaintext 1. 2. 3. блин вот так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:36 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Shocker.ProShocker.Proпропущено... сорри, у вас там наоборот, так что так: Код: plaintext 1. 2. 3. блин вот так: Код: plaintext 1. 2. 3. 4. Огромнейшее спасибо. Переменную Flag я второй раз определил, т.к. не работало. Вначале была в одном месте :) Exit Do конечно же лучше, я где-то раньше спрашивал как просто выйти из цикла. Еще раз огромное спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:53 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
Апочему сразу не закончить процедуру? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 06:12 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
alex77755, Ok :) Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 07:51 |
|
||
|
Как вставить в макрос кнопку, чтобы останавливать цикл VBA Excell
|
|||
|---|---|---|---|
|
#18+
alex77755Апочему сразу не закончить процедуру? Код: plaintext 1. 2. после цикла могут быть еще какие-то нужные действия, поэтому не стал предлагать такой вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 09:07 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36940271&tid=2159281]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 298ms |

| 0 / 0 |
