从一系列 Excel 单元格中动态删除空白

Zac*_*ach 3 excel vba dynamic

我有一个命名的数据范围,称为“数据”。我正在尝试找到一个公式或数组公式,该公式或数组公式将在新的单元格范围内返回数据,但会丢失所有空白行。

data

row   x    y    
1     A    77    
2          
3     B    23    
4     A    100    
5    
Run Code Online (Sandbox Code Playgroud)

我的新范围是:

row    x    y    
1     A    77    
3     B    23    
4     A    100    
Run Code Online (Sandbox Code Playgroud)

如果空白行出现在数组的末尾,那也没关系。到目前为止,我很难过

Rea*_*idy 5

为此,您应该使用特殊单元格方法。使用 vba 或手动。

手动

2007/2010

选择列 A
主页选项卡 - 查找和选择 - 转到特殊
选项 -空白 - 确定主页选项卡 - 删除单元格 - 整行 - 确定

VBA

Sub DeleteBlanks()
    Activesheet.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Run Code Online (Sandbox Code Playgroud)

如果您想保持原始数据不变并将范围复制到另一个工作表,请尝试以下操作:

Sub DeleteBlanks()

    Dim vArray As Variant
    '// Get an array of your data
    vArray = Sheet1.UsedRange
    '// Copy the data to another sheet
    Sheet2.Range("A1").Resize(UBound(vArray, 1), UBound(vArray, 2)).Value = vArray
    '// Delete blanks
    Sheet2.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End Sub
Run Code Online (Sandbox Code Playgroud)

公式

如果你真的需要一个公式看看这里:

删除空白 - 数组公式