代码在debud模式下可以正常运行(逐步),但是在通过按钮激活后会在结束前停止

时间:2019-11-11 13:54:15

标签: excel vba

我已经阅读了多个上述讨论,并且所有答案似乎都是特定于代码的。 当我从按钮运行代码时,它会在最后一行之前退出,因此不会删除最后一个范围。如果我再次按下按钮,则其余部分将被删除。 尝试了各种方法来解决该问题-如果句子是最新的。希望你们能帮忙

如果句子在While循环中,则通过等待命令在最后几行之间延迟。

Sub NewFileNoPrices_Click()

Dim i As Long

插入为编辑内容:(可能导致问题进一步降低)

Dim mySheetNames() As Variant

i = 0

mySheetNames = Array("Exchange Rates", "Raw Prices", "Summing Parts")

Application.DisplayAlerts = False

On Error Resume Next

ThisWorkbook.Sheets(mySheetNames).Delete

On Error GoTo 0

Application.DisplayAlerts = True

来自原始帖子

Do While i < 2
i = i + 1

If i = 1 Then
ThisWorkbook.Sheets("Ordering Tool").Columns("I:AI").Delete xlLeft
End If

If i = 2 Then
ThisWorkbook.Sheets("Product Cost Tool").Rows("60:97").Delete xlUp
End If

Loop

End Sub

此外,我想在此子项中添加更多内容-删除第一个范围后的所有编码都无法全速执行,但是在调试模式下效果很好。

1 个答案:

答案 0 :(得分:0)

这很奇怪,因为它也应该放在第二个“ if”中。尝试使用以下代码:

Sub TestMe()

    Dim i As Long
    i = 0

    Do While i < 2
        Debug.Print i
        i = i + 1
        If i = 1 Then
            MsgBox i
        End If

        If i = 2 Then
            MsgBox i
        End If
        Debug.Print i
        Debug.Print "-------"
    Loop

End Sub

并查看其工作方式以及是否同时发送两个msgbox。如果不是这种情况,请进一步调试,找出为什么两个MsgBox都不可见。 这是运行代码后立即窗口( Ctrl + G)的外观:

enter image description here