|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Всем привет! Нужно написать макрос, который бы обрабатывал строки в Excel, вставляя по определенным критериям новые. - Вначале определяю lastrow - Затем пишу цикл For I = 1 to lastrow - вставляю новые строки согласно условию - тут же пересчитываю lastrow с учетом вставленных строк (lastrow = lastrow + inserted) Финальный lastrow определяется верно, с учетом вставленных строк (проверяла) Но сам цикл заканчивается раньше, чем положено. У меня такое ощущение, что в самом цикле запоминается изначально определенный lastrow, и пересчеты внутри цикла никак его не меняют. Вопрос. Как можно это обойти не прибегая к циклами типа Do while. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 19:28 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
TakayavotУ меня такое ощущение, что в самом цикле запоминается изначально определенный lastrow, и пересчеты внутри цикла никак его не меняют.именно так TakayavotВопрос. Как можно это обойти не прибегая к циклами типа Do while.У вас whileфобия? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 19:33 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
TakayavotКак можно это обойти не прибегая к циклами типа Do while.Можно через цикл Do Until ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 19:34 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Ну ладно, уговорили. Если алгоритм позволяет, можете сделать цикл For от конца к началу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 19:39 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
TakayavotУ меня такое ощущение, что в самом цикле запоминается изначально определенный lastrowПравильное ощущение. Как уже написал Shocker - делайте цикл обратный: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 19:59 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Как вариант: Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:23 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Shocker.ProTakayavotКак можно это обойти не прибегая к циклами типа Do while.Можно через цикл Do Until а я предпочитаю while wend :) потому что сначала проверяется условие, а потом уже все остальное. до тех пор, пока не потребуется exit do, само собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:29 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Antonariyа я предпочитаю while wend :) потому что сначала проверяется условие, а потом уже все остальное.а ты знаешь, что можно написать Код: vbnet 1. 2. 3.
а можно Код: vbnet 1. 2. 3.
ЗЫ: А можно вообще написать Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:35 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Antonariyа я предпочитаю while wend :)мне слово Wend неприятно... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:36 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyа я предпочитаю while wend :) потому что сначала проверяется условие, а потом уже все остальное.а ты знаешь, что можно написать Код: vbnet 1. 2. 3.
а можно Код: vbnet 1. 2. 3.
ЗЫ: А можно вообще написать Код: vbnet 1. 2. 3. 4. 5.
многабукоф while wend короче при любых раскладах ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:38 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Antonariyмногабукофбрейнфак вам в руки! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 22:51 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Цикл - слишком важное дело, чтобы доверять его компилятору! Только If и GoTo , только хардкор! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 08:34 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Shocker.ProУ вас whileфобия? Не фобия. Просто плохо пишу макросы и неохота менять его сильно. Думала, может какую козявку можно поставить рядом с циклом и чудо случится.. но ладно. Попробую с дувайлами. Спасибо всем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 09:19 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
TakayavotПопробую с дувайламиВы прикалываетесь? Вам надо одну строку поменять и все. И убрать свое изменений lastrow. Я даже строку кода привел. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 11:55 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
The_Prist, ты забыл про l=l+1, в твоем варианте оно же не будет щелкать само... ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 12:25 |
|
Цикл For (I = 1 to lastrow). Сделать так, чтобы lastrow менялась
|
|||
---|---|---|---|
#18+
Shocker.Pro, Так оно и не надо, т.к. цикл идет снизу вверх. Строки кодами добавляются по умолчанию ниже указанной строки. Поэтому если правильно организовать цикл - то нафиг никакие l=l+1 не нужны. Я так раз 500 делал и не было проблем. И код читаемый без путаницы с l , и делается все правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 14:44 |
|
|
start [/forum/search_topic.php?author=%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D0%A1%D1%81%D0%A1%D0%B8%D1%8F23&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 282ms |
total: | 451ms |
0 / 0 |