删除特定行中的空白单元格,直到非空白单元格(VBA / Excel)

我有一个500-600行的文件(具有很大的增长潜力)。 它以xml文件开始,在自动读取之后,创build的表格在标题信息和其余部分之间具有不同数量的空白单元格。 每行存在相同数量的信息。 我需要每行包含连续的数据。

在这里输入图像说明

想象一下,黄色方块是有信息的细胞。 最上面的格子就是它对我来说。 中间是多么迫切需要它。 最后是一个理想,其余表格格式的列消失(也是我知道如何做相当容易)。

我将不胜感激任何和所有的帮助。

不知道我明白了真正的要求,但是如果你从数据开始:

在这里输入图像说明

并在列A中select要处理的行的单元格,然后运行以下命令:

Sub FixLines() Dim r As Range, N As Long, i As Long, RR As Long For Each r In Selection RR = r.Row N = Cells(RR, Columns.Count).End(xlToLeft).Column If N <> 1 Then For i = N To 1 Step -1 If Cells(RR, i).Value = "" Then Cells(RR, i).Delete (xlShiftToLeft) End If Next i End If Next r End Sub 

你将会得到:

在这里输入图像说明

这里有一个方法可以做到这一点(你也可以使用代码将内容移动到左侧)。

 Option Explicit Function Delete_Blank_Cells() Dim lRow As Long Dim lCol As Long Dim LastRow As Long Dim LastCol As Long LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastCol = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).column For lRow = 1 To LastRow For lCol = 1 To LastCol If Cells(lRow, lCol) = "" Then Cells(lRow, lCol).Delete Shift:=xlToLeft End If Next If lRow > 5 Then MsgBox "Exit code - remove after testing!!" Exit Function End If Next End Function