gpt4 book ai didi

vba - Excel VBA简单的if not语句

转载 作者:行者123 更新时间:2023-12-02 13:11:36 35 4
gpt4 key购买 nike

我正在尝试运行一个相对简单的循环来从列表中提取我不需要的值。

除了我的“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

我相当确定我在某个地方犯了一个简单的错误,但我一直无法找到它。

最佳答案

它不是 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

关于vba - Excel VBA简单的if not语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115086/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com