需要 VBA 解决方案 - 清除单元格左侧 4 个单元格的内容,并显示 N/A 错误

需要 VBA 解决方案 - 清除单元格左侧 4 个单元格的内容,并显示 N/A 错误

我有一张数据表,其中 L 列有一个 vlookup 公式。在 L 列(即 vlookup 返回“#N/A”)的行中,我想清除左侧八个单元格(D 列至 K 列)的内容。我想创建一个 VBA 宏来执行此操作。任何帮助都非常感谢。

这是我现在的代码:

Dim r As Range
Dim i As Long
ActiveWorkbook.Worksheets("1yr Matcher").Select
For i = 7 To 500
    For Each r In Range(Cells(10, i), Cells(Cells(ActiveSheet.Rows.Count, i).End(xlUp).Row, i))
        If IsError(r) Then
            If r >= 0 Then r.Offset(, -1).Resize(, -8).ClearContents
        End If
    Next r
Next

答案1

我认为问题出在您的For语句中。目前, 的值会r遍历 { G1, G2, ..., G10},然后是 { H1, ..., H10},一直到 { SF1, ... SF10}。看起来您想要循环遍历中的所有单元格,L7:L500那么为什么不直接这样做呢?

Dim r As Range
For Each r In Range("L7:L500")
    If IsError(r) Then
        If r >= 0 Then r.Offset(, -1).Resize(, -8).ClearContents
    End If
Next

答案2

尝试一下:

Sub ErrorCleaner()
    Dim r As Range, rng As Range, L As Long
    Set rng = Range("L:L").Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
    For Each r In rng
        If r.Text = "#N/A" Then
            L = r.Row
            Range(Cells(L, "D"), Cells(L, "K")).Clear
    End If
    Next r
End Sub

相关内容