Как удалить определенное значение в столбце с помощью vba

Я хочу удалить определенное значение в столбце с vba.

Вот мой код на данный момент. Но, конечно, это не работает.

   vstd = Range("J6").Offset(l - 1, 0).Value


      For Each Rng2 In Range("F6:F2555")
       If Rng2.Value = vstd Then
       Rng2.ClearContents
      End If
   Next

2 ответа

  1. Это близко к тому, что вы ищете?

    Sub Macro2()
    
        Dim vSpecificVal As Variant
        vSpecificVal = Range("J6").Offset(l - 1, 0).Value
    
        Call Range("F6:F2555").Replace(vSpecificVal, "")
    
    End Sub
    

    Пожалуйста, сообщите нам спасибо

  2. вот подходAutoFilter():

    Option Explicit
    
    Sub ClearColumn()
        Dim l As Long
    
        l = 1 '<--| initializing 'l' variable value
        With Range("F5:F2555") '<--| reference your range
            .AutoFilter Field:=1, Criteria1:=Range("J6").Offset(l - 1, 0).Value '<--| filter on value in cell offsetted "l-1" rows from J6
            If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then .Offset(1).Resize(.Rows.count - 1).SpecialCells(xlCellTypeVisible).ClearContents '<--| if any filtered cell found clear their contents
        End With
        ActiveSheet.AutoFilterMode = False
    End Sub
    

    убедитесь, что вы инициализируете lзначения, чтобы не иметь Range("J6").Offset(l - 1, 0)ссылки на недопустимый диапазон (т. е. lдолжно быть меньше 6)