如何使用vba删除列中的特定值

时间:2016-12-30 20:15:41

标签: excel vba excel-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 个答案:

答案 0 :(得分:0)

这接近你正在寻找的东西吗?

Sub Macro2()

    Dim vSpecificVal As Variant
    vSpecificVal = Range("J6").Offset(l - 1, 0).Value

    Call Range("F6:F2555").Replace(vSpecificVal, "")

End Sub

请让我们知道谢谢

答案 1 :(得分:0)

这是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)