Страницы: 1
RSS
Определение пустой ячейки в столбце макросом
 
Еще раз добрый вечер.
Имеются 4 столбца с данными. Н/р: А1:А10, В1:В10 и т.д.
Надо переместить В1:В10 в ячейку А11 и также остальные.Все в столбец А:А. Нашел макрос который находит в А:А нижнюю пустую ячейку.
Код
Sub FindEmptyCell()
 ' Поиск ближайшей пустой ячейки в текущем столбце 
   Do While Not IsEmpty(ActiveCell.Value) 
   ActiveCell.Offset(1, 0)
   .Select Loop
End Sub

Дальше не могу сообразить как определить кол-во ячеек в В:В, копировать или вырезать и переместить в А11.
И как в этом макросе указать определенный столбец? Пытался под коментарием прописать Range("A1"  ;)  . Select
Начал выполнять постоянно и завис.
Спасибо.
 
Код
Sub Perenos()
Dim i As Integer
Dim iLastRow As Integer
    For i = 2 To 4
        iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
        Range(Cells(1, i), Cells(10, i)).Cut Cells(iLastRow, 1)
    Next
End Sub

 
 
Огромное спасибо за ответ!!!
Правильно ли я понял что данный макрос будет брать 2,3,4, столбцы только по 10 первых ячеек?
 
Ну, если вам нужно больше строк, то измените диапазон
Range(Cells(1, i), Cells(10, i))
вместо 10 поставте свое значение
 
Код
Sub SelectCellRange()
Dim strSelTop As String, strSelBottom As String
Range("B1").Select
 PS = Range("A" & Rows.Count).End(xlUp).Row
strSelBottom = ActiveCell.Address
strSelTop = Cells(4, ActiveCell.Column).Address
Range(strSelTop & ":" & strSelBottom).Select
 Selection.Copy
 Range("A1" ).Select
 Do While Not IsEmpty(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
Loop
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Application.CutCopyMode = False
End Sub
Собрал вот такой код! Вроде работает. Если вас не затруднит,- можно ли сделать как в вашем варианте. То есть указать переменные для перебора столбцов.
Заранее благодарю.
 
Вы лучше выложите пример .xls , что есть и что нужно получить.
 
Может прокатит?
Код
Sub uuu()
Dim lr1& 'первая пустая ячейка в 1м столбце
Dim lr2& 'последняя ячейка в диапазоне
Dim a() 'массив
Application.ScreenUpdating = False 'отключаем обновление экрана (убрать мерцание)
'определяем "первую пустую" ячейку в столбце 1
lr1 = Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 2 To 4 'цикл от 2 до 4
'определяем последнюю ячейку в столбце i
    lr2 = Cells(Rows.Count, i).End(xlUp).Row
    'берём значение диапазона от первой до последней ячейки в массив "а"
    a = Range(Cells(1, i), Cells(lr2, i)).Value
    'выгружаем массив начиная с пустой ячейки 1 столбца
    Cells(lr1, 1).Resize(UBound(a), 1) = a
    'увеличиваем номер пустой ячеки на кол-во элементов текущего массива
    lr1 = lr1 + UBound(a)
Next
Application.ScreenUpdating = True 'включаем обновление экрана
End Sub
 
Вот файл. Еще раз огромное СПАСИБО!!!
 
kalbasiatka спасибо!!! тоже рабочий вариант!
Страницы: 1
Читают тему
Наверх