Excel VBA - 需要将数据放入下一行,并从现有位置删除

时间:2016-09-02 00:25:59

标签: vba excel-vba excel

在同一个工作表上,我试图压缩我的所有单元格数据,即将所有具有值的单元格移动到彼此相邻而不是分开。原始表格如下所示: picture 1

所需的输出将是这样的: picture 2

我试过下面的代码来解决这个问题,抱歉我是新来的,所以不知道怎么问这个问题

Sub SelectRangea()

   Sheets("Sheet1").Select
   Range("a1:cf1").Select
   Application.CutCopyMode = False
   Selection.Copy


With Sheets("Sheet1")
   lst = .Range("A" & Rows.Count).End(xlUp).Row + 1
   .Range("A" & lst).PasteSpecial xlPasteColumnWidths
   .Range("A" & lst).PasteSpecial xlPasteValues

End With

End Sub

1 个答案:

答案 0 :(得分:0)

此代码根据您的示例数据解决问题。

Dim c As Long

c = 1
With Worksheets("sheet6")
    c = .Cells(1, c).End(xlToRight).End(xlToRight).Column
    Do While c < .Columns.Count
        With .Range(.Cells(1, c), .Cells(1, c).End(xlToRight))
            .Parent.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, .Columns.Count) = .Cells.Value
            .Clear
        End With
        c = .Cells(1, c).End(xlToRight).Column
    Loop
End With

如果其中一个岛屿&#39;第一行中的数据是单个单元格,然后您必须适应该特殊条件。