我想用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
答案 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)