Jos*_*osh 3 excel vba if-statement excel-vba
我试图运行一个相对简单的循环来从列表中提取我不想要的值.
除了我的"Not"语句之外,以下所有内容都正常工作,不会产生错误...
它似乎根本没有做任何事情.
Set myRange = Range("A49:A150")
For Each myCell In myRange
If myCell Like "*msn.com*" Or _
myCell Like "*messaging.microsoft.com*" Or _
Not myCell Like "*.com*" Then
myCell.Delete
End If
Next myCell
Run Code Online (Sandbox Code Playgroud)
我相当肯定我在这里有一个简单的错误,但我一直无法找到它.
cyb*_*shu 11
它不是Not声明.您的问题是,当您删除单元格时,您会更改范围,因此您的循环缺少数据.如果删除了单元格A49,则A50处的值最多移动到A49,并且从不检查.汇总有资格被删除的单元格,然后一次删除它们.
Sub test()
Dim rngDelete As Range
Set myrange = Range("A1:A3")
For Each mycell In myrange.Cells
If mycell Like "*msn.com*" Or _
mycell Like "*messaging.microsoft.com*" Or _
Not mycell Like "*.com*" Then
If Not rngDelete Is Nothing Then
Set rngDelete = Union(rngDelete, mycell)
Else
Set rngDelete = mycell
End If
End If
Next mycell
If Not rngDelete Is Nothing Then
rngDelete.Delete
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33884 次 |
| 最近记录: |