如何在VBA中循环查找对话框

时间:2018-04-29 15:40:15

标签: excel vba excel-vba loops

如果我的问题看起来有些基本,我的编码技巧不存在,我道歉。如上所述,我在尝试让循环对话框在执行操作时重复时遇到了挑战。我想要做的是创建一个宏,它打开了查找对话框,让我输入一个数字然后它会找到它并选择整行并突出显示黄色并重复直到按下“ESC”键。我的问题是:

1)当我点击宏打开搜索对话框时,我输入了我的号码然后按回车键,它会转到它,但在第一次关闭对话框并再次按下宏之前它不会继续。有没有办法让它在输入数字后自动关闭,以便它可以继续使用其余的代码,而不必按“ESC”关闭它并再次按下宏?

2)如果可能的话我可以让它循环而不必多次按下宏来启动它以及如何?

3)对于我的生活,我似乎无法找到一个命令,当按下“ESC”键时将结束循环。当用户按下Escape键时,我发现有一些会中断很长的更新过程,但我所做的并不是一个很长的更新过程。

代码:

    Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+Shift+Z
'
    Application.CommandBars.FindControl(ID:=1849).Execute
    ActiveCell.Rows("1:1").EntireRow.Select
    ActiveCell.Activate
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0

    End With
    ActiveCell.Rows("1:1").Select
End Sub

1 个答案:

答案 0 :(得分:0)

使用re.DOTALL代替和hasorder让宏等待对话框关闭然后再继续

请记住,您必须至少点击一次“查找”对话框按钮,才能获得以下宏中Application.Dialogs(xlDialogFormulaFind).Show引用将使用的事件:

ActiveCell