使用VBA将数据移动到最左边的空白单元格

时间:2017-05-11 10:33:12

标签: excel excel-vba excel-formula vba

本质上,我需要一种自动方式将所有细胞移动到最左边的空白区域。

我做了一个例子: enter image description here

蓝色未分类数据的示例,我希望它在以红色排序时的外观。

就像我说的那样,理论上,它需要进行排序的方式是将其向左移动通过空白单元格,直到左边的单元格不为空白。 我认为这将是一个VBA解决方案,但我不确定从哪里开始。

2 个答案:

答案 0 :(得分:3)

这样做会,但它不一定会匹配条目(在您的示例中,所有汽车和树木最终都在同一列中)。它使用非常方便的SpecialCells方法查找范围内的所有空白单元格并删除它们,在这种情况下将相邻单元格移动到左侧。

Sub x()

On Error Resume Next
With Range("A1").CurrentRegion
    .Offset(, 1).Resize(, .Columns.Count - 1).SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
End With

End Sub

答案 1 :(得分:1)

Excel版本:
主页>找到&选择>转到特殊>空白> OK。
然后删除>删除单元格(或Ctrl + - )>移位单元格>行

在VBA中,上述内容可以缩短为

Cells.SpecialCells(xlCellTypeBlanks).Delete xlToLeft