Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 25 сентября 2022, 06:57

Название: Excel VBA Макросы. Скопировать непустой столбец с одного листа на другой.
Отправлено: Посетитель от 25 сентября 2022, 06:57
Есть вот такой код:
Спойлер
Sheets("z").Select
For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(1, i) = "ad" Then
  L = i: Exit For
End If
Next
Columns(L).Select
Selection.Copy
Sheets("v").Select
Columns("A:A").Select
ActiveSheet.Paste
[свернуть]

Этот макрос ищет столбец "ad" и копирует этот столбец на другой лист.
Нюанс в том, что в исходной таблице два столбца с таким именем. Один полностью пустой, а другой может быть или полностью заполнен или частично - при этом в строке 2 может быть пусто, а в строке 3 может быть значение, т.е. столбец не заполняется сверху вниз, а заполняет хаотично.

Как скопировать на другой лист заполненный столбец "ad", а не пустой?
Название: Excel VBA Макросы. Скопировать непустой столбец с одного листа на другой.
Отправлено: Администратор от 28 сентября 2022, 09:16
Макрос
Sub Макрос()
 
    Sheets("z").Select
    For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
        If Cells(1, j) = "ad" Then
            If WorksheetFunction.CountA(Columns(j)) <> 1 Then
                L = j: Exit For
            End If
        End If
    Next
    Columns(L).Select
    Selection.Copy
    Sheets("v").Select
    Columns("A:A").Select
    ActiveSheet.Paste

End Sub
[свернуть]
Название: Excel VBA Макросы. Скопировать непустой столбец с одного листа на другой.
Отправлено: Посетитель от 28 сентября 2022, 15:32
Спасибо! Заработало!