Precisa de solução VBA - Limpar o conteúdo de 4 células para a esquerda da célula com erro N / A

0

Eu tenho uma tabela de dados na qual a coluna L tem uma fórmula de vlookup. Nas linhas onde a coluna L (ou seja, o vlookup retorna "# N / A"), eu gostaria de limpar o conteúdo das oito células à esquerda (colunas D a K). Eu gostaria de criar uma macro VBA para fazer isso. Qualquer ajuda é muito apreciada.

Aqui está o meu código agora:

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
    
por Ryan 21.04.2015 / 20:48

2 respostas

0

Acho que o problema está nas suas declarações For . No momento, o valor de r percorre { G1 , G2 , ..., G10 } e, em seguida, { H1 , ..., H10 } e todo o caminho até { SF1 , ... SF10 }. Parece que você quer percorrer todas as células em L7:L500 , então por que não fazer isso diretamente?

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
    
por 21.04.2015 / 21:05
0

Experimente:

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
    
por 21.04.2015 / 21:11