在A列中,我们分别有1到10的数字 在B列中,我们持有字母a至j,但没有顺序 我们删除了4个字母 我不想更改A列,但B列删除了她下面的空白单元格和字母 以下代码删除具有空单元格的行:
Sub DeleteEmptyRows()
' Deletes the entire row within the selection if the ENTIRE row contains no data.
Dim i As Long
ActiveSheet.UsedRange.Select
With Application
' Turn off calculation and screenupdating to speed up the macro.
.Calculation = xlCalculationManual
.ScreenUpdating = False
For i = Selection.Rows.Count To 2 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then Selection.Rows(i).EntireRow.Delete
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
答案 0 :(得分:1)
我不明白您如何从第一张图片转到第二张图片,但是如果您从第二张图片开始,则会将您转到第三张图片。
Sub x()
On Error Resume Next 'avoid error if no blank cells
Columns("B").SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
On Error GoTo 0
End Sub
答案 1 :(得分:1)
此解决方案将循环遍历rangeAreas,复制该区域的B列中的内容,删除空白,然后将结果返回b列,我需要Z列作为辅助列
Sub Button1_Click()
Dim RangeArea As Range, x
For Each RangeArea In Columns("A").SpecialCells(xlCellTypeConstants, 1).Areas
x = RangeArea.Rows.Count
RangeArea.Offset(, 1).Copy [z1]
Columns("Z:Z").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
RangeArea.Offset(, 1).Value = Range("Z1:Z" & x).Value
Range("Z:Z").Delete
Next RangeArea
End Sub