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

实质上,我需要一种自动的方式来移动所有单元格最左边的空白单元格。

我举了一个例子: 在这里输入图像说明

蓝色未sorting数据的示例,当我以红色sorting时,我希望它看起来如何。

就像我说的,从理论上讲,它需要sorting的方式是左移空白单元格,直到左侧的单元格不为空。 我认为这将是一个VBA解决scheme,但我不确定从哪里开始。

这将做到这一点,但它不一定匹配的条目(在你的例子中,所有的汽车和树木最终在同一列)。 它使用非常方便的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 

Excel版本:
主页>查找并select>转到特殊>空白>确定。
然后删除>删除单元格(或Ctrl + – )>左移单元格>确定

在VBA上面可以缩短到

 Cells.SpecialCells(xlCellTypeBlanks).Delete xlToLeft