タイトルはあいまいですが、タイトルに問題を記述する方法がわかりませんでした。これは私の長いコードが保存ダイアログをトリガーする部分です:ErrorHandlerはmsアクセスのトラップエラーを停止します
Line1:
Dim dlgSaveAs As Object
Dim strFilePath As String
Dim strFileName As String
Set dlgSaveAs = Application.FileDialog(2)
With dlgSaveAs
.InitialFileName = (CurrentProject.Path) & "\Folder" & "_" & Format(Date, "yyyy")
End With
dlgSaveAs.Show
strFilePath = dlgSaveAs.SelectedItems(1)
strFileName = Right(strFilePath, Len(strFilePath) - InStrRev(strFilePath, "\"))
ActiveWorkbook.SaveAs FileName:=CurrentProject.Path & "\" & strFileName, FileFormat:=xlOpenXMLWorkbook
SaveError:
Select Case Err.Number
Case 1004 'if it's want to overwrite an old file and i clicked "no" or "cancel"
GoTo Line1 'reopen the Save Dialog
Case 5 'if i clicked "cancel" on the Save Dialog
rs1.Close
Set rs1 = Nothing
MsgBox ("Canceled")
Exit Sub
End Select
私はErrorHandlerが '1004'エラーを検出した場合、それが閉じられた後に保存ダイアログを再度開きます。 エラー '1004'が発生するたびに、ハンドラはそれを正常に検出しますが、(ErrorHandlerによって)ダイアログを再オープンした後、ハンドラは '1004'または '5'のいずれかの検出を停止します。 なぜですか?
'Line:'の後に 'On error goto SaveError'を入れて再設定する必要があると思います。 – Brad
返信のために@ブラッドに感謝、私はあまりにも考え、また動作しませんでした。マットのマグカップのおかげで彼は何が間違っているかを知った –