从一列

时间:2018-05-05 18:51:35

标签: vba

我正在尝试构建一个基本宏来对我的数据进行排序:

Sub Makro1()

Range("N1").Select
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
Range("N2").Select
Application.CutCopyMode = False
Selection.Copy
Range("D2").Select
ActiveSheet.Paste
Range("N3").Select
Application.CutCopyMode = False
Selection.Copy
Range("C2").Select
ActiveSheet.Paste

我的数据是N列,一条记录需要3个单元格,我想将其复制到上面的一行。

现在我希望VBA继续复制,直到N列中的数据结束。

所以N4到A3,N5到C3等等。

我对VBA很陌生。

谢谢!

1 个答案:

答案 0 :(得分:1)

喜欢这个吗?

Public Sub testing()
    Dim i As Long
    Application.ScreenpUpdating  = False
    With ActiveSheet
        For i = 1 To .Cells(.Rows.Count, "N").End(xlUp).Row Step 3
            .Cells(i + 1, "A") = .Cells(i, "N")
            .Cells(i + 1, "D") = .Cells(i + 1, "N")
            .Cells(i + 1, "C") = .Cells(i + 2, "N")
        Next i
    End With
    Application.ScreenpUpdating  = True
End Sub

如图所示将列N转换为左侧:

DATA

您可以使用

删除或隐藏空列A行
.Range(.Cells(2, "A"), .Cells(.Cells(.Rows.Count, "N").End(xlUp).Row, "A")).SpecialCells(xlBlanks).Delete

.Range(.Cells(2, "A"), .Cells(.Cells(.Rows.Count, "N").End(xlUp).Row, "A")).SpecialCells(xlBlanks).EntireRow.Hidden = True