2

多くの Excel ワークブックを開き、それらすべてのデータをターゲット ワークブックにマージするプログラムがあります。マージ後、データの変換 (カスタム ロジックを使用した列から行への転置) を行い、ルックアップ データを使用してさらに列を追加します。

次のコードがあります

Sub consolidateFiles()
    On Error GoTO ErrorHandler

    processFiles
    transform
    addLookupData

    Exit Sub
    ErrorHandler:
    Debug.Print Err.Number & " = " & Err.Description & ", Source = " & Err.Source 
End Sub

Sub processFiles()
 'Here I open all the files in the directory and copy and paste into the target workbook. 
 'If there is an error here, I would like to know the file that caused the error 
 'and I would like to proceed to the next file after logging the error
End Sub

Sub transform()
 'Here I transform some of the data from column to year.
End Sub

Sub addLookupData()
 'Here I add some new columns by looking up the data in another sheet in the target  workbook. Here the lookups can return error
End Sub

コードにエラー処理を追加するための優れたプログラミング手法を知りたいと思っていました。現在、エラーをログに記録してプログラムを続行するグローバル エラー ハンドラが 1 つあります。メイン プロシージャから呼び出している 3 つのサブプロシージャのそれぞれにエラー処理を追加することは良い考えですか?

文書化されていない ERL を使用してエラー行を取得する方法について読みました。VBA エディタで行番号を追加するにはどうすればよいですか?

これは、VBA での私の最初のプログラムです。私は多くの Java プログラミングを行ってきましたが、そこではエラー処理のパラダイムが大きく異なります。したがって、経験豊富な VBA プログラマーから、私が従うことができる優れたプラクティスは何かを学びたいと思います。

SO での VBA エラー処理に関する質問の 1 つにリンクされているこの優れた記事を読みました。

http://www.cpearson.com/excel/errorhandling.htm

4

1 に答える 1

1

何の答えも得られなかったので、もっと調べてみました。これが私が役に立つと思ったいくつかの記事です:

http://www.techrepublic.com/blog/five-apps/five-tips-for-handling-errors-in-vba/339

http://www.jpsoftwaretech.com/vba-tips-tricks-and-best-practices-part-four/

http://www.fmsinc.com/tpapers/vbacode/debug.asp#BasicErrorHandling

また、各手順でSingleExitPointに従うこと(エラーありまたはエラーなし)が良い習慣であることがわかりました。

アイデアの多くは、Siddharthが提供したリンクに記載/ヒントされています。しかし、私がこれらの記事を読むまで、それらは私にはあまり明確ではありませんでした。

于 2012-10-04T13:41:59.997 に答える