|
|
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
К сожалению, пока самостоятельно не получается. Имеется таблица Columns A-E. Заполняю её макросами. После выполнения очередного макроса, необходимо находить последнюю непустую ячейку в этом диапазоне и ставить курсор в столбец "А" ниже нее на 2 строки. Константин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 22:27 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
Я использую такой код для определения Range, содержащего данные (просто использовать UsedRange не катит из-за того, что в него попадают и пустые ячейки, для которых определен формат): Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 03:11 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 09:06 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
vkodor Код: plaintext 1. Хороший способ, но в целом для Worksheet, а не для диапазона ячеек (я понял речь идет о Range). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 09:44 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
пардон за банальность , а чем не катит стандартная ф-ция activecell.SpecialCells(xlCellTypeLastCell).Address ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 09:49 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
big-dukeпардон за банальность , а чем не катит стандартная ф-ция activecell.SpecialCells(xlCellTypeLastCell).Address этот метод использует "UsedRange" т.е. если была ячейка заполнена а потом очищена, то адрес будет этой ячейки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 09:58 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
маладец зачот я еще несколько лет назад для себя написал вот так вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:04 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov vkodor Код: plaintext 1. Хороший способ, но в целом для Worksheet, а не для диапазона ячеек (я понял речь идет о Range). можно организовать функцию и для диапозона допустим так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:16 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
big-dukeмаладец зачот я еще несколько лет назад для себя написал вот так вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. хитро с удовольствием снимаю шляпу (если конечно сам придумал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:21 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
vkodor...можно организовать функцию и для диапозона допустим так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А чем Set rng = UsedRange.Find("*", FirstCell, xlValues, xlPart, xlByRows, xlPrevious, False) хуже перебора ячеек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:23 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, буду пробовать. Константин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 20:41 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
я, например, использую такую функцию, чтобы еще и последние скрытые строки учитывались Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 08:12 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
Кому интересно Я тут провел небольшой анализ Взял 1-ю функцию "RealUsedRange" - Serge Gavrilov 2-ю функцию "LastUsedRow" - big-duke 3-ю функцию "RealUsedRange2" - vkodor 4-ю функцию "RealLastRowHide" - sergeyvg заключил в цикл For x = 1 To 10000 ... Next x и посмотрел время получилось следующее при маленьком диапозоне Range("C3:D20") 1-я 2,640625 сек 2-я 2,5625 сек 3-я 0,859375 сек 4-я 0 сек при большом диапозоне Range("C3:О65518") 1-я 2,75 сек 2-я 591,234375 сек 3-я 46,22265625 сек 4-я 0,03125 сек при большом диапозоне Range("C3:О65518") и скрытых пустых ячейках Range("C55518:О65518") (информацию я очистил в этих ячейках) 1-я 2,69921875 сек 2-я 613,84375 сек 3-я 42,96484375 сек 4-я 24,703125 сек у четвертой функци есть один недостаток, если вся строка равна одному значению, то неправильно определяется последняя строка надо сказать что на практике такого не бывает так что на мой взгляд самая эфективная функция №4 - sergeyvg прилагаю файл в котором я тестировал может у кого-нибудь еще какие-нибудь мысли возникнут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 10:40 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
а через запись макроса получается вот так Range("E2").CurrentRegion.Rows.Count ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 10:48 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
хмм...насчет быстродействия согласен. Но, во первых, 10 000 раз я никогда не использовал эту ф-цию, а если была необходимость в многократном использовании, то я оптимизировал код для минимизации кол-ва вызовов. А так исследование интересное. Думаю что если взять скажем 100 прогонов и диапазон до 2000 строк, то разница будет незначительна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 10:50 |
|
||
|
Поиск последней ячейки в Excel
|
|||
|---|---|---|---|
|
#18+
vkodorпри большом диапозоне Range("C3:О65518") 1-я 2,75 сек 2-я 591,234375 сек 3-я 46,22265625 сек 4-я 0,03125 сек Что-то вы сильно много знаков после запятой понаписывали... Мне кажется их гораздо меньше в реале... Выполните этот код и посмотрите результаты: For I = 1 To 1000 Cells(I, 1) = Timer Next В столце А:А точность поставьте 6 знаков после запятой. Как видите, реальное значение только лишь у второго знака после запятой... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 20:11 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35066727&tid=2162808]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 407ms |

| 0 / 0 |
