powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как найти послед. заполненную ячейку в указанном диапазоне
8 сообщений из 8, страница 1 из 1
Как найти послед. заполненную ячейку в указанном диапазоне
    #36972372
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть код, который находит послед. заполненную ячейку в диапазоне, но начинает с первой строки и поэтому вызывает торможение, когда кол-во строк превышает 20000 , никак не получается задать условие, чтобы поиск проводился с и по строкам номер которых будет указан в ячейках ВВ10 и ВС10.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Next
  
Dim x1, x2
'x1=номер последней полной ячейки в вводе нарядов (диапазон)
'x2= номер последней полной ячейки в архиве, после которой будет вставка данных из ввода нарядов
 x1 = Columns("B").Rows( 44 ).End(xlUp).Row
Range("B6:AA" & x1).Select
    Selection.Copy
    Sheets("Архив зарплаты").Select
    x2 = Columns("B").Rows( [b]65000 ).End(xlUp).Row[/b]
    Range("A" & x2 +  1 ).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
Sheets("Зарплата").Select
    Range("D2").Select
    Application.CutCopyMode = False
    End If
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36972375
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькой формулкой не хотите? :)
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36972411
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
viktturМаленькой формулкой не хотите? :)
Макрос привязан к кнопке, которая производит действия, копирует нужный диапазон и вставляет его в первую после послед. ячейки ячейку, поэтому формулой получится
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36972433
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=ПОИСКПОЗ("яя";A1:A20;1) для текста
=ПОИСКПОЗ(9E+307;A1:A20;1) для чисел
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36972683
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И-и-эх...
Раз уж можно кодом, то чем поиск позиции, например, половинным делением не устраивает?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function FindEnd(ByVal Sh As Object, Optional fCol =  1 ) As Long
' Sh - объект-лист, можно вызывать как ActiveSheet
' fCol - номер колонки диапазона, проверяемый на "заполненность"
' возвращаемое значение - последняя непустая ячейка в указанной колонке
    rS =  2  ' Начальная строка диапазона поиска
    rE =  65535  ' Конечная строка диапазона поиска
    Do While (rE - rS) >  1 
        rM = Int((rE + rS) /  2 )
        If IsEmpty(Sh.Cells(rM, fCol)) Then
            rE = rM
        Else
            rS = rM
        End If
    Loop
    FindEnd = rS
End Function
Это как пример.
Можете модифицировать - например, в качестве Object использовать диапазон (Range):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Function FindEnd2(ByVal oR As Range, Optional fCol =  1 ) As Long
' Возвращаемое значение - номер строки ЛИСТА
    rS =  1 
    rE = oR.Rows.Count
    Do While (rE - rS) >  1 
        rM = Int((rE + rS) /  2 )
        If IsEmpty(oR.Cells(rM, fCol)) Then
            rE = rM
        Else
            rS = rM
        End If
    Loop
    FindEnd = oR.Row + rS - 1 
End Function
Если надо проверять "заполненность" по нескольким ячейкам - модифицируйте условие проверки.

Тут ведь дело в чём - использование специализированных функций удобнее, если ваш диапазон
заполняется не "хаотично", а имеет определенную структуру - действительно, зачем проверять
все ячейки, если имеется гарантированно заполненный столбец (например, с номером или датой).
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36972912
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMИ-и-эх...
Раз уж можно кодом, то чем поиск позиции, например, половинным делением не устраивает?


Ваш вопрос как обухом по голове...
а чем он собственно устраивает?
Сразу вспоминается анектод как колхозу премию выплатили и они решали что с ней делать:
- какие будут предложения?
- давайте купим трактор!
все потдерживают обсуждает. встает мужик из 3-го ряда и говорит:
- а нахер нам трактор?
все пожимают плечами и действительно нахер нам трактор
- какие будут еще предложения?
- давайте купим племенных коров!
все потдерживают обсуждает. встает мужик из 3-го ряда и говорит:
- а нахер нам коровы?
все пожимают плечами и действительно нахер не нужны
- какие будут предложения у мужика из третьего ряда?
- давайте купим большой надувной шар!
- и что мы будем с ним делать?
- надуем и отпустим!
- зачем?
- а нахер нам шарик?

По теме: смотрите ветку в которой очень подробно обсуждалось тынц
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36973142
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadВаш вопрос как обухом по голове...
а чем он собственно устраивает?
Да так. Увидел, что ТС работает с некими реальными данными (судя по "зарплата", "архив зарплаты"), да еще и явно табличного вида. Вот и вспомнилось, что в таких ситуациях перебирать все ячейки диапазона некошерно...
Хотя, как правильно было замечено в указанном топике, - абсолютного и непогрешимого решения нет.
Да и "торможение" может быть связано не с поиском, а, например, с копированием через буфер.
...
Рейтинг: 0 / 0
Как найти послед. заполненную ячейку в указанном диапазоне
    #36973186
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за примеры. Deggasad , приветствую.
Этот код работает нормально , если кол-во ячеек не выше 3-5к , а вот дальше подвисает.
Все упорядочено и имеет четкую структуру, тоесть как минимум 2-3 стобца постоянно заполнены и по ним идет поиск. Сейчас буду эксперементировать. Результаты выложу сюды )
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как найти послед. заполненную ячейку в указанном диапазоне
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]