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

各ワークブックを制御できる場合は、「チェック済み」と呼ばれるそれぞれに名前付き範囲を作成し、次のようにコードを変更できます...

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 に答える
0

You could just use a breakpoint: http://www.wiseowl.co.uk/blog/s196/breakpoints.htm

これは最もクリーンな方法ではありませんが、このスプレッドシートを使用するためだけのものであれば、これは非常にシンプルで効果的な方法です。

于 2013-02-04T07:41:10.697 に答える