Vba 删除行,直到达到某个值

Vba 删除行,直到达到某个值,vba,excel,Vba,Excel,我需要一次删除一行并循环它,直到activecell=“X” 为什么像这样简单的事情就做不到呢 Sub SubMac4_1Loop() Do Until ActiveCell.Value <> "X" Selection.EntireRow.Delete Loop End Sub subsubsubMA4_1Loop() 直到ActiveCell。值“X” Selection.EntireRow.Delete 环 端接头 你的叙述直接与你的代码相矛

我需要一次删除一行并循环它,直到activecell=“X” 为什么像这样简单的事情就做不到呢

Sub SubMac4_1Loop()
    Do Until ActiveCell.Value <> "X"
        Selection.EntireRow.Delete
    Loop
End Sub
subsubsubMA4_1Loop()
直到ActiveCell。值“X”
Selection.EntireRow.Delete
环
端接头

你的叙述直接与你的代码相矛盾

删除行,直到等于X

Sub SubMac4_1Loop()
    Do Until ActiveCell.Value = "X"
        Selection.EntireRow.Delete
    Loop
End Sub
Sub SubMac4_1Loop()
    Do Until ActiveCell.Value <> "X"
        Selection.EntireRow.Delete
    Loop
End Sub
删除行,直到不等于X

Sub SubMac4_1Loop()
    Do Until ActiveCell.Value = "X"
        Selection.EntireRow.Delete
    Loop
End Sub
Sub SubMac4_1Loop()
    Do Until ActiveCell.Value <> "X"
        Selection.EntireRow.Delete
    Loop
End Sub
subsubsubMA4_1Loop()
直到ActiveCell。值“X”
Selection.EntireRow.Delete
环
端接头

fwiw,这种潜在无限的方法可能不是一个好主意。很容易让它意外地进入“永远”循环。它需要错误控制,所以它甚至不会进入循环,除非循环有可能结束,我也会在其中加入一个可选参数,这样它就不会在Alt+F8宏对话框中显示给普通用户。这里使用的是
ActiveCell
Selection
吗?或者OP是否应该尝试重新写入不需要活动单元格的内容?(或者这是你的评论的一部分,只是没有明确地说?@BruceWayne-我试图回答OP提出的原始问题,但我也想指出,这充其量是“不是最佳实践”),更糟糕的是,这是一个潜在的永久循环,它将围绕当前的Excel实例。如果找不到X,它将继续吞噬行,直到应用程序崩溃或用户有意使其崩溃。不幸的是,确实没有足够的信息来编写替代方案;需要在列中查找X等。希望这只是测试语法和原则,实际代码会有所不同。这是正确运行还是继续循环?subsubmac4_1_3_1()SubMac3 SubMac3_1 SubMac3_2 SubMac4_1 loop SubMac4_1 loop SubMac4_2 End Sub SubMac4_1_3_1 loop()在ActiveCell.Offset时执行(1,1).Value“”SubMac4\u 1\u 3\u 1 Loop End sub我真的不明白…但就它看来:如果活动单元格在某处发生变化(并且迟早会遇到空单元格),它将停止。如果没有,它将运行到所有时间和空间的末尾:D
Sub SubMac4_1Loop()
    Do Until ActiveCell.Value <> "X"
        Selection.EntireRow.Delete
    Loop
End Sub