在EXCEL中为某些VBA代码分配宏以删除指定单元格为空的行

时间:2017-05-02 08:45:59

标签: excel vba excel-vba

我正在尝试使用宏来删除“F”行中包含空白单元格的所有行。

这是我的代码:

Sub DeleteBlanks()
    On Error Resume Next
    Range([indirect("V1")]).Select.EntireRow.SpecialCells(xlBlanks).EntireRow.Delete
End Sub

间接(V1)是指一个变量,它指示工作范围。目前,单元格V1包含Materjal!F1:F191

但是在将代码应用于按钮后,当我单击它时,它只会选择范围,但不会删除具有空单元格值的行。

我做错了什么?

enter image description here

2 个答案:

答案 0 :(得分:0)

fRange = Range(Cells(1,"F"),Cells(.CountRows,"F"))
If fRange = "" Then
 Cells(.countRows,"F").EntireRow.Delete
End If

这有效吗?

答案 1 :(得分:0)

试试这个:

Sub Macro1()

Dim i As Integer
Dim last As Integer

last = ActiveSheet.UsedRange.Rows.Count

''select unused column
Range("AA1").Select
Selection.Formula = "=IF(F1 = """", ""Y"", ""N"")"
Selection.AutoFill Destination:=Range("AA1:AA" & last)
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False


Range("AA1").Select
For i = 1 To last

    If Selection.Value = "Y" Then
        Selection.EntireRow.Delete
    Else: ActiveCell.Offset(1, 0).Select
    End If


Next

Columns("AA:AA").ClearContents

End Sub