は、私は、Excelブックにサブフォームの結果をエクスポートするためのいくつかのコードを持っています。コードは正常に動作し、小さな問題は1つしかありません。私が輸出すると、Excelのファイルが開きます。このExcelファイルが開かれ、ユーザーは再び輸出をしたい場合は、ファイルが開いており、新しいExcelオブジェクトは、同じ名前のファイルを保存したいので、私はエラー1004アクセスVBA - 近いExcelオブジェクト
を受け、このエラーが生成されます。私が望むのは、すべてがキャンセルされ、以前に作成されたブックを閉じる必要があることをユーザーに知らせることだけです。これは私が試したものです:
If Err.Number = 1004 Then
MsgBox "Error. You have opened Excel file, that has same name as this file name should be. Please close that file first !", vbCritical
Cancel = True
Set wb = Nothing ' wb is wb=XcelFile.Workbooks.Add
Set XcelFile = Nothing ' Xcelfile is Xcelfile= New Excel.Application
End If
このコードは、ユーザーがそのファイルを閉じるとエクスポートが実行できます - 古いファイルは上書きされます。問題はExcelアプリケーションがまだWindowsタスクマネージャで開かれているため、Excelオブジェクトが正しく閉じられていないことです。
誰もがよりよい解決策を持っていますか?
P.S:それは同じ名前ではないでしょうが、私はそれが固定得ることができないように、私は、エクセルのファイル名に番号を含む試してみました。
編集:ここでは、私は、ファイル名
Dim i as Integer
ExcelFilename = "RESULTS_" & Format(Date, "dd/mm/yyyy") & "_" & i & "_" & ".xlsx"
i = i + 1
を変更しようとした方法である「i」は、私がもう一度コードを実行したときにそれが値です変更されません。どうすれば増やすことができますか?これは...
はい、これもテストしましたが、RESULTS_16_04_2016-1、RESULTS_16_04_2016-2などのように数値が増えることをお勧めします。 – LuckyLuke82
@ LuckyLuke82:編集 – Andre
を参照してください。ありがとうAndre !!! – LuckyLuke82