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

Excel VBA-需要将数据放入下一行,并从现有位置删除,vba,excel,Vba,Excel,在同一张工作表上,我尝试压缩所有单元格数据,即移动所有具有值的单元格,使其彼此相邻,而不是分散。原始工作表如下所示: 所需的输出如下: 我尝试了下面的代码来解决这个问题,很抱歉我是新来的,所以不知道如何提问 Sub SelectRangea() Sheets("Sheet1").Select Range("a1:cf1").Select Application.CutCopyMode = False Selection.Copy With Sheets("She

在同一张工作表上,我尝试压缩所有单元格数据,即移动所有具有值的单元格,使其彼此相邻,而不是分散。原始工作表如下所示:

所需的输出如下:

我尝试了下面的代码来解决这个问题,很抱歉我是新来的,所以不知道如何提问

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

这段代码根据您的示例数据解决了这个问题

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

如果第一行中的一个“孤岛”数据是单个单元格,那么您将不得不适应这种特殊情况。

您似乎觉得这是一种代码编写服务,您发布了一个模糊的需求列表和您选择的语言,而这里的一些代码猴子会大量编写代码来满足这些需求。你错了。我们很乐意提供帮助,但我们希望您先自己努力解决这个问题。当您这样做并遇到困难时,您可以解释您遇到的问题,发布您编写的代码的相关部分,并提出与该代码相关的特定问题,我们将尽力帮助您解决。