|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Здравствуйте! Макрос обращается к таблице как ListObject на листе. Делает перебор по строкам для определенной колонки. Учитывая, что таблица (левая верхняя ячейка) может размещаться не обязательно в первой строке и в первом столбце. Во вложенном файле представил два варианта перебора. Какой вариант перебора наиболее оптимальный? Есть что не учел? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 10:16 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
ferzmikk, первый вариант лучше. Переменная ИндексКолонкаМесяц для этой цели не нужна, к столбцу можно обращаться по имени (собственно, Вы это и делаете для получения значения переменной) Код: vbnet 1. 2. 3. 4. 5.
Кстати, зачем Вы делаете перебор ячеек ? Если нужны значения ячеек, лучше делать перебор массива значений этого столбца, например: Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 10:50 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Мне больше нравится первый вариант. Только не понимаю, зачем нужна отдельная переменная под индекс колонки - какое-то масло масляное получается, можно же к колонке обращаться непосредственно по её имени. Ну и итерацию лучше бы по .Cells вести, наверное, а не по .Rows. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 11:02 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
А если мне нужно сделать перебор строк не в одной колонке, а несколько. Как тут быть? С помощью следующих свойств? Код: vbnet 1. 2.
Для данного случая оптимально подойдет второй вариант (из вложенного)? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 12:34 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
ferzmikkА если мне нужно сделать перебор строк не в одной колонке, а несколько. Как тут быть? Тогда делаешь итерацию по Код: vbnet 1.
и Строка.Value2 у тебя будет Array(1,N). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 13:09 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
AkinaferzmikkА если мне нужно сделать перебор строк не в одной колонке, а несколько. Как тут быть? Тогда делаешь итерацию по Код: vbnet 1.
и Строка.Value2 у тебя будет Array(1,N). В общем получается так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 13:29 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Наверно зту запись Код: vbnet 1. 2. 3. 4. 5.
было бы правильнее написать следующим образом Код: vbnet 1. 2. 3. 4. 5. 6.
Чтобы каждый раз в цикле не приходилось определять индекс, а затолкать в переменную. Учитывая, что в таблице 50 000 строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 13:51 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Как присвоить значение в соответсвующей строке и колонке таблицы? Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 14:15 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 14:54 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
И научитесь уже подглядывать в Locals Window... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2017, 14:55 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Вот еще. В окне Watches пытаюсь в объекте Строка найти свойство, которое отображает номер строки в таблице, а не номер расположения строки на листе. По скриншоту видно, что нужно возвратить 1. Есть подобное свойство? Или DataBodyRange не позволяет это и нужно обходить: ставить счетчик при переборе строк? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 14:02 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Выделив строку как самостоятельный объект, Вы потеряли её связь с таблицей. Строка не знает, где она расположена В ТАБЛИЦЕ. Она вообще не знает, что есть какая-то там таблица. Посмотрите ради любопытства (и не в Watches, а там, где я указал), кто для объекта Строка является Parent... Так что если необходим номер строки именно в таблице - делайте не For Each итерацию, а Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 14:36 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
Akina, Спасибо! Понял ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 15:36 |
|
Варианты перебора строк
|
|||
---|---|---|---|
#18+
AkinaПосмотрите ради любопытства (и не в Watches, а там, где я указал), кто для объекта Строка является Parent... Лист1 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2017, 11:41 |
|
|
start [/forum/topic.php?fid=61&msg=39383271&tid=2172810]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 319ms |
total: | 462ms |
0 / 0 |