Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从一列排序数据_Vba - Fatal编程技术网

Vba 从一列排序数据

Vba 从一列排序数据,vba,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.CutCopyMo

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

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很陌生

谢谢

像这样

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变换到左侧,如图所示:

可以使用删除或隐藏空列A行

.Range(.Cells(2, "A"), .Cells(.Cells(.Rows.Count, "N").End(xlUp).Row, "A")).SpecialCells(xlBlanks).Delete


您已经复制了N3。你的意思是N4到A3,N5到D3等等?是的,我的意思是N4,然后下面有更多的数据。可以消除新数据中的空行吗?你的意思是压缩,因此在上面的例子中,你会在j旁边有一个d,然后删除行3,4,6,7,9,10,11?.Range.Cells2,a,.Cells.rows.Count,N.EndxlUp.Row,A.SpecialCellsxlBlanks.Delete或.Range.Cells2,A.Cells.Cells.Rows.Count,N.EndxlUp.Row,A.SpecialCellsxlBlanks.EntireRow.Hidden=在结束时为True。
.Range(.Cells(2, "A"), .Cells(.Cells(.Rows.Count, "N").End(xlUp).Row, "A")).SpecialCells(xlBlanks).EntireRow.Hidden = True