2

次のマクロは正しいですが、SaveAsクリックするとエラーが発生するNoCancel、クリックすると正常にyes動作します。

ActiveWorkbook.SaveAs Filename:=FileName, FileFormat:=xlWorkbook, ConflictResolution:=xlLocalSessionChanges

Application.DisplayAlert =True

しかし、一部になると、保存SaveAsを選択すると次のエラーが表示されます。NoExcel メッセージ: " ......... " という名前のファイルがこの場所に既に存在します。置き換えますか? [いいえ] をクリックするかcancel、実行時エラー 1004 が表示されます ...SaveAsオブジェクトのメソッドが_Workbook失敗しました。

を使用したくありませんApplication.DisplayAlerts = False。同じ名前のファイルが既に存在することをユーザーに認識してもらいたいからです。

  1. なぜこのエラーが発生するのですか? 「いいえ」を選択できない理由
  2. ファイルが既に存在することを表示し、選択するNoCancel実行時エラーを発生させないようにするには、他にどのようなオプションが必要ですか?
4

1 に答える 1

7

この方法を試してください。

コードにコメントを付けたので、理解に問題はありません。それでもあなたがそうするなら、単に尋ねてください:)

Sub Sample()
    Dim fName As Variant

    '~~> Offer user to Save the file at a particular location
    fName = Application.GetSaveAsFilename

    '~~> Check if it is a valid entry
    If fName <> False Then
        '~~> Check before hand if the file exists
        If Not Dir(fName) <> "" Then
            '~~> If not then save it
            ActiveWorkbook.SaveAs Filename:=fName
        Else
            '~~> Trap the error and ignore it
            On Error Resume Next
            If Err.Number = 1004 Then
                On Error GoTo 0
            Else '<~~ If user presses Save
                ActiveWorkbook.SaveAs Filename:=fName, _
                FileFormat:=xlWorkbook, _
                ConflictResolution:=xlLocalSessionChanges
            End If
        End If
    End If
End Sub
于 2013-04-12T09:34:18.997 に答える