0

下面的代码是格式化在任务栏中打开的 excel 文件。它很好地完成了我的工作。屁股我想在突出显示的步骤上按住我的屏幕一段时间,以便我可以检查结果。谁能给点主意???

Sub OpenAllWorkbooksnew()
    Set destWB = ActiveWorkbook
    Dim DestCell As Range

    Dim cwb As Workbook
    For Each cwb In Workbooks

        **Call donemovementReport**
        ActiveWorkbook.Close True
        ActiveWorkbook.Close False
    Next cwb
End Sub
4

3 回答 3

0

你可以只使用一个断点: http: //www.wiseowl.co.uk/blog/s196/breakpoints.htm

这不是最干净的方法,但如果此电子表格仅供您使用,那么这是一种非常简单有效的方法。

于 2013-02-04T07:41:10.697 回答
0

如果您可以控制每个工作簿,则可以在每个工作簿中创建一个名为“已检查”的命名范围,并按如下方式更改您的代码...

Sub OpenAllWorkbooksnew()
    Set destWB = ActiveWorkbook
    Dim DestCell As Range

    Dim cwb As Workbook
    For Each cwb In Workbooks

        'ensure "Checked" flag is reset
        cwb.Names("Checked").RefersToRange.Value = "Unchecked"

        'bring workbook to focus
        cwb.Activate

        'wait until "Checked" flag is changed to "OK"
        Do Until cwb.Names("Checked").RefersToRange.Value <> "Unchecked"
            DoEvents
        Loop

        'check result and action accordingly
        If UCase(cwb.Names("Checked").RefersToRange.Value) = "OK" Then
            ActiveWorkbook.Close True
        ElseIf UCase(cwb.Names("Checked").RefersToRange.Value) = "ERROR" Then
            ActiveWorkbook.Close False
        End If
    Next cwb
End Sub

如果您对循环通过的每个工作簿没有这样的控制级别,则可以使用相同的方法,但使用功能区/命令栏(取决于您的 Excel 版本)。如果没有关于如何准确调用此代码等的额外信息,就很难再具体化了。

于 2013-02-04T14:06:55.033 回答
0

您可以使用Stop暂停代码。例如

Option Explicit

Sub Sample()
    Debug.Print "1"

    Stop

    Debug.Print "2"
End Sub
于 2013-02-04T08:47:53.120 回答