2017-12-14 6 views
1

複数のファイルを開き、コードを実行するマクロがあります。しかし、 "Locked for Editing"というファイルの場合は、エラーが表示されます。編集用にロックされている - VBA読み取り専用

FileNameが現在使用中です。あとでもう一度試してみてください。

このファイルを読み取り専用で開くにはどうすればよいですか?私が試した:

Workbooks.Open FileName:=Selected_EOS_Report_File, ReadOnly:=True 

Workbooks.Open FileName:=Selected_EOS_Report_File, ReadOnly:=True, IgnoreReadOnlyRecommended:=True 

をすべてのヘルプは高く評価され!

更新:最初の方法は実際に動作します。私のより大きいコードは、 "Selected_EOS_Report_File"変数を通過する複数のファイルで実行されます。ある時点で、それを通過したファイルはExcelの一時ファイル( "〜$"でファイル名を始める)でした。コードはtempを読み取れませんでしたので、if/then文を作成してそのファイルをスキップし、 Excelドキュメント。

答えて

0

私の知る限りでは、あなたがNotify:= True

MSDN link

を必要とするファイルは、読み取り/書き込みモードで開くことができない場合は、この引数は、ファイルを追加する Trueで
に通知しますファイル通知リストに追加します。 Microsoft Excel は読み取り専用としてファイルを開き、ファイル通知リストをポーリングし、 ファイルが使用可能になったときにユーザーに通知します。この引数が である場合、Falseまたは省略された場合、通知は要求されず、使用できないファイルを開こうとする試みは失敗します。

+0

こんにちは、あなたのおかげで、ありがとう。私は 'Workbooks.Open FileName:= Selected_EOS_Report_File、ReadOnly:= True、Notify:= True'になり、' Workbooks.Open FileName:= Selected_EOS_Report_File、Notify:= True'を試しましたが、同じエラーが出ました。 – mitchmitch24

+1

ファイルから読み込む必要がある場合は、実際にファイルを開く代わりに 'GetObject'を使用することができます。どのようなエラーメッセージが表示されますか? – dadler

+0

ファイルの情報をExcelの別のスプレッドシートに読み込んでコピーする必要があります。 "実行時エラー1004:Microsoft Excelはファイル 'FileName'にアクセスできません。いくつかの理由が考えられます: - ファイル名またはパスが存在しない - ファイルが別のプログラムで使用されている。保存に同じ名前が付いています " – mitchmitch24

0

このポストから派生
Dim wb As Workbook 

Set wb = GetObject(Selected_EOS_Report_File) 

wb.Open 'ReadOnly:=True (removed the readonly part) 

Opening .xlsx with VBA, File in Use error. Read-only not working

編集

は、ここではポストは、旧バージョンのため、同様の問題を示し、あなたがXLSXするundate場合、それは消えること:

https://social.technet.microsoft.com/Forums/en-US/5c9f7444-a2c7-4598-beca-21a6d5575d94/excel-file-currently-in-use

+0

こんにちはn8、おかげで助けてください。私はそれを与えたが、エラー "Run Time Error 438。。Obejectは、このプロパティまたはメソッドをサポートするのdoesnt」とそれがハイライトされ、 『wb.Open読み取り専用を:私は – mitchmitch24

+1

OKをデバッグするとき= True』を行は、多分してみてください。この(編集済み) –

+0

残念ながら、読み取り専用ビットがコメントアウトされているのと同じエラー – mitchmitch24

関連する問題