如何解决使用Excel VBA和范围删除一些数据
| 我正在寻找一些急切的新老板设定的任务指导! 我有一个命名范围为“ List”的错误代码列表,还有一个需要识别的特定错误代码的列表“ Codes”。 我需要的是一些VBA代码,它将检查\“ List \”,如果存在任何不在\“ Codes \”列表中的代码,它将删除它。 (因此,如果它位于“代码”范围内,则它将保留,否则将被删除)。 有人可以帮我吗? 到目前为止,我已经有了这段代码,但是它只做相反的事情,并删除了我想要保留的代码!Sub DeleteCodes()
Application.ScreenUpdating = False
Dim InRange As Range,CritRange As Range
Dim InCell As Range,CritCell As Range
Set InRange = Range(\"Data\") \' all selected source cells
Set CritRange = Range(\"List\") \' the named range of words to be excluded
For Each InCell In InRange.Cells
For Each CritCell In CritRange.Cells
If InCell = CritCell Then
InCell = \"\" \' blank it
Exit For \' exit inner for
End If
Next CritCell
Next InCell
Application.ScreenUpdating = True
End Sub
解决方法
Sub DeleteCodes()
Dim InRange As Range,InCell As Range
Dim CritRange As Range
Dim v,f As Range
Set InRange = Range(\"Data\") \' all selected source cells
Set CritRange = Range(\"List\") \' the named range of words to be excluded
Application.ScreenUpdating = False
For Each InCell In InRange.Cells
Set f = CritRange.Find(InCell.Value,xlValues,xlWhole)
If f Is Nothing Then InCell.Value = \"\"
Next InCell
Application.ScreenUpdating = True
End Sub
, 尝试:
Sub DeleteCodes()
Dim rCell As Range
Application.ScreenUpdating = False
For Each rCell In [List].Cells
If Application.WorksheetFunction.CountIf([Codes],rCell.Value) = 0 Then
rCell.Value = \"\"
Next rCell
Application.ScreenUpdating = True
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。