【发布时间】:2018-04-20 23:17:51
【问题描述】:
我只想删除一个非常大的电子表格中的空白单元格(而不是整行),并希望将下面的单元格向上移动。
您可以从电子表格快照中获得灵感。
有人可以帮忙吗?我正在处理非常大的电子表格。
谢谢
【问题讨论】:
-
你会考虑非vba方法吗?
-
是的,我愿意。我想完成这件事,最好尽可能简单:)。手动,它需要很长时间。
我只想删除一个非常大的电子表格中的空白单元格(而不是整行),并希望将下面的单元格向上移动。
您可以从电子表格快照中获得灵感。
有人可以帮忙吗?我正在处理非常大的电子表格。
谢谢
【问题讨论】:
您可以使用 SpecialCells,例如
Sub x()
On Error Resume Next
Range("C:D").SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
'or
Range("A1").CurrentRegion.offset(,2).resize(,2).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
On Error GoTo 0
End Sub
On Error 是为了在没有空格的情况下避免错误。
【讨论】:
这是一种方法。这将从工作表上的每一列中删除空白单元格
Option Explicit
Public Sub RemoveBlanks()
Dim rng As Range
Dim c
Set rng = Application.InputBox("Select a range", "Get Range", Type:=8)
If Not rng Is Nothing Then
On Error Resume Next
With rng.Parent
For Each c In rng
Range(c, c.Offset(.Cells(.Rows.Count, c.Column).End(xlUp).Row - c.Row, 0)).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
Next c
End With
On Error GoTo 0
Else
MsgBox "Nothing selected"
End If
End Sub
【讨论】:
Set ThisRng = Application.InputBox("Select a range", "Get Range", Type:=8)
InputBox 获取输入