如果0清除多列的内容

时间:2018-03-13 19:22:27

标签: excel-vba vba excel

我想知道如何让以下代码适用于多列(D:P)?我已经尝试过添加& “:”P“&”65536“到范围内,没有成功。

For i = 5 To Range("D" & "65536").End(xlUp).Row Step 1
If Application.WorksheetFunction.CountIf(Range("D" & i), "0") = 1 Then
Range("D" & i).ClearContents
End If
Next i 

3 个答案:

答案 0 :(得分:1)

您可以使用Range("D5:P65536").Replace What:=0,Replacement:=""一次全部替换。

答案 1 :(得分:0)

也许你正在寻找那样的人。仅当行中的每个单元格都包含0时,才会清除内容。

Dim i As Long
Dim rg As Range

    For i = 5 To Range("D" & "65536").End(xlUp).Row Step 1
        Set rg = Range("D" & i & ":P" & i)
        If Application.WorksheetFunction.CountIf(rg, "0") = 13 Then
            rg.ClearContents
        End If
    Next i

答案 2 :(得分:0)

循环显示实际的并使用Find()方法执行搜索。如果您的值存在于该范围内(范围=列),则可以通过该方式清除内容。

Sub test()

    ' Just for illustration on the columns
    Const D& = 4:   Const P& = 16

    Dim ws As Worksheet, col As Long
    Set ws = ThisWorkbook.Worksheets(1)

    For col = D To P
        If Not ws.Columns(col).find(What:="0", LookAt:=xlWhole) Is Nothing Then
            ws.Columns(col).ClearContents
        End If
    Next col

End Sub