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

如何使用vba删除列中的特定值,vba,excel,Vba,Excel,我想用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 这和你要找的差不多吗 Sub Macro2() Dim vSpecificVal As

我想用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

这和你要找的差不多吗

Sub Macro2()

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

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

End Sub
请让我们知道,谢谢

这里有一个
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=1'需要在clearcontents
之后加一个“End IF”,但它当然不起作用。
非常模糊。您可以指定错误吗?另外,您是否有类似于开头的
Sub clearCellContents()
和结尾的
End Sub
?您必须将代码放置在
子文件中,而不仅仅是它自己的文件。编辑代码ıadd End If但仍然不起作用它会做什么出错,或者运行时会弹出什么错误<代码>不起作用
不够具体,我们无法提供帮助。请更具体地说明错误。要使示例真正有效1)您应至少指定
lookAt:=xlWhole
参数,并确保它不会删除仅包含所需值的单元格。但指定所有参数更安全,因为“每次使用此方法时都会保存LookAt、SearchOrder、MatchCase和MatchByte的设置”2)您应该添加
Dim l作为Long
和一些
l=someLongValue
3)最后您可以避免
Call
并在
Replace
之后去掉括号,如下所示:
Range(“F6:F2555”)。替换内容:=vSpecificVal,replacement:“”,lookAt:=xlother,MatchCase:=True