Страницы: 1
RSS
Счет непустых строк: почему и при 1, и при 0 результат ноль?
 
Всем доброго дня!
При копировании использую переменную (lrdk), в которой заложено количество непустых строк в столбце, однако даже если столбец пустой, то значение переменной равно единице. Пример во вложении.
Код
With Лист1
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
lrdk = Sheets("ДопКорзины").Cells(Rows.Count, 1).End(xlUp).Row
    For j = 1 To .UsedRange.Columns.Count
        If .Cells(1, j).Value Like "Номер" Then
            If lrdk > 0 Then
            .Range(.Cells(1, j), .Cells(lr, j)).Copy Sheets("ДопКорзины").Cells(lrdk + 1, 1)
            Else
            .Range(.Cells(1, j), .Cells(lr, j)).Copy Sheets("ДопКорзины").Range("A1")
            End If
        End If
    Next
End With
Изменено: IvanMantrov - 09.03.2018 23:00:48
 
IvanMantrov, а что Вы собственно пытаетесь перенести с листа на лист? В цикле у вас наращивается номер столбца, так и задумано?
Если смущает счетчик строк, то вот костыль:
Код
If lrdk = 1 Then lrdk = 0
Изменено: Anchoret - 09.03.2018 20:23:38
 
Anchoret,Да. Это в примере он один, а в реале их будет много и неизвестно в каком порядке, так что цикл ищет название столбца
 
И в чем вопрос? Если Вы пользуетесь этим методом, то получаете при пустом столбце первую строку и 1 соответственно..
Изменено: БМВ - 09.03.2018 20:18:12
По вопросам из тем форума, личку не читаю.
 
БМВ,Т,е. если столбец пустой, то значение будет "1" и если в столбце одна ячейка заполнена, то тоже "1"???
 
Здравствуйте.
Цитата
IvanMantrov написал:
заложено количество непустых строк
Не количество, а последняя заполненая в столбце. Вы ищите последнею строку Rows.Count и хотите чтобы она равнялась 0. Вы попробуйте закрасить на листе эту нулевую строку которую должен найти макрос, сможете?
Если хотите получить 0 проверьте найденную ячейку на заполнение, если заполнена, то результат не меняется, если не заполнена =результат -1
Изменено: gling - 09.03.2018 20:27:58
 
IvanMantrov, Вы попробуйте воспроизвести это не кодом, а комбинациями клавиш ctrl+ArrowUp .... ctrl+ArrowDown Куда встанет маркер?  
По вопросам из тем форума, личку не читаю.
 
gling,А каким методом тогда нужно считать, чтобы при пустом столбце получался ноль?
 
Ответ в #6, но если в столбце все подряд ячейки заполнены, то можно ещё просто посчитать их типа СЧЁТЗ() или СЧЁТ().
 
Спасибо!
Страницы: 1
Наверх