1

Access 2010 には、クエリを実行して結果を Excel の列にエクスポートする VBA があります。ここでの目標は、ユーザーが必要なボタンを押すと Excel ワークブックが開かれ、存在しない場合は作成されることです。新しいワークブックが作成されると、VBA は期待どおりにプリフォームします。私が抱えている問題は、ワークブックが既に存在する場合です。

そのため、Excel アプリ オブジェクトのセットを作成した後、ワークブックを開こうとします。存在しない場合、1004 エラーが発生し、次のエラー ハンドラーがあります。

    Select Case Err
    Case 1004   'Workbook doesn't exist, make it
    xl.Workbooks.Add
    Set wb = xl.ActiveWorkbook
    wb.SaveAs strWorkBook

    Resume Next

ユーザーが既存のワークブックを開くと、[上書きする]、[いいえ]、[キャンセル] オプションが表示されます。yes 以外の応答は、1004 エラーを生成します (同じコード番号を持つ 2 つの異なるエラーは奇妙に思えます)。自動的に受け入れるVBAを作成するか、ユーザーがノー/キャンセルできるようにする何かがあるかどうかにかかわらず、これを回避する方法を探していました。最も簡単な方法が優先されます。エラーが表示されたくないだけです。

4

1 に答える 1

1

Excelファイルが存在するかどうかを処理するためにエラー処理に依存する必要はありません。Dir()存在するかどうかを確認し、それに応じて開くか作成するために使用します。

If Len(Dir(strFullPathToWorkbook)) > 0 Then
    ' open the workbook '
Else
    ' create the workbook '
End If

wb.SaveAs strWorkBookこれが新しいワークブックである場合に 使用します。

wb.Save既存のワークブックの場合に使用します。

于 2012-08-09T16:49:15.217 に答える