2016-06-17 5 views
0

私は比較的多くのデータをExcelのワークブック内で転送していますが、他にもいくつかのことを行い、activeWorkbook.saveを使ってファイルを最後に保存しますは、VBAの問題とその回避方法を凌駕しています

しかし、私にはわからない理由から、ファイルが長い間開いていて、ファイルを保存したときにそのファイルが別のユーザーによって編集されたというメッセージが表示され、他のユーザーに通知して保存しないように促します他のユーザーが行った変更を上書きすることができます。何があっても上書きされるようにサブコードをコーディングする方法はありますか?そのダイアログボックスが表示された場合、サブが実行されないようにしますか?

また、他の誰もファイルを編集していないので、なぜ私にそのメッセージが最初に届くのか分かりません。

ありがとうございました!

ThisWorkbook.Saved = False 
Application.DisplayAlerts = False 
ThisWorkbook.SaveAs ThisWorkbook.FullName, FileFormat:=52 
Application.DisplayAlerts = True 
If Not ThisWorkbook.Saved Then MsgBox "Saving the file failed." & Chr(10) & "Please try again later..." 

ワークブックの.Savedプロパティは読み取りおよび書き込み可能である:

+1

多分あなたはこのようなものを探しているでしょう: 'If ThisWorkbook.MultiUserEditing Then ThisWorkbook.ExclusiveAccess'? – Ralph

+0

どこにコードを置くのですか?サブの外? – Vbasic4now

+1

'ThisWorkbook'内の' Workbook_Open'イベントで、編集が完了する前です。それが失敗し、排他的アクセスを得ることができないので、正常に処理されるような状況も処理する必要があります。 – Dave

答えて

1

は、私たちは最終的にこの問題の解決策を発見したと思います。したがって、最初の行は、このファイルが「保存されていません」とマークされていることを確認します。これは重要です。変更が無効になっており、ファイルが実際に保存されているかどうかはわかりません(このプロパティなし)。

ファイルが保存しようとされたら(.xlsmとして変更する必要があるかもしれません)、.Savedプロパティが読み取られて実際に保存されたことを確認します。

+0

これは私が必要としていたものです。 – Vbasic4now

関連する問題