2017-07-26 3 views
0

VBAにActiveWorkbook.SaveAsを使用して.xlsファイルに保存しようとしているコードがあるマクロファイルがあります。VBでActiveWorkBook.SaveAsが呼び出されたときにエラー1004が発生しました

実際にはExcelファイルを開いており、コマンドプロンプトから".csv"ファイルパスと"Macro.xls"ファイルをExcel.exeに渡しています。最初に.csvファイルを起動し、Macro.xlsの最後のコードで".csv"ファイルが".xls"."c:\\1\\2\\dummy.csv"から"c:\\1\\2\\dummy.xls"に保存されています。

ファイル名が"c:\\1\\2\\dummy.xls"のActiveWorkbook.SaveAsが呼び出されたときに、エラー1004が返されます。Excelファイルが自分のマシンで開かれていないと正常に動作しています。

この問題は、一部のExcelファイルが既に開いている場合にのみ発生します。

My Code: 
ActiveWorkbook.SaveAs Filename:= _ 
xls_file_name, FileFormat:= _ 
xlNormal, Password:="", WriteResPassword:="", 
ReadOnlyRecommended:=False _ 
, CreateBackup:=False 

xls_file_name:Dummy.xls 

私はVBに非常に新しいです。誰もこの問題を解決するために私に示唆することができます。これは特にエクセル2016です。エクセル2010では、うまくいきます。

+0

@Ron、申し訳ありません。完了しました。 – Siva

+0

[最小、完全で検証可能な例](https://stackoverflow.com/help/mcve)を投稿できますか?また、実際に[エラー1004](https://stackoverflow.com/questions/9751622/run-time-error-1004-for-saving-excel-file-vba-required)について検索しようとしましたか? )? – Ayak973

+0

@ Ayak973、そうでもやってみたけど、まだ2016が優秀な人がいるときだけ同じ問題に直面している。 Excelが開かれていない場合は、適切に保存することができます。それが私が新しい質問を構成した理由で、それは重複していません。 – Siva

答えて

0

最後に、何が原因で解決されたのですか。SaveAsが失敗しました。

私のアプリケーションが管理者権限で実行されていて、私が書いているフォルダがそのフォルダに保存するために管理者で実行する必要があるため、エクセルが開かれたときに言いました。管理モードでExcelを起動してシナリオを実行しようとすると、正常に保存されます。

SaveAsが成功したシナリオは、Excelが開かれていない場合です。したがって、アプリケーションからExcelを起動するこのシナリオでは、アプリケーションが高い特権で起動し、ファイルが正常に保存されるため、管理モードで起動しています。

簡単に言えば、すべてのアクセスレベルです。

Windows 7では、すべてのExcelアプリケーションが別々のプロセスとして起動するため、Windows 7で起動すると管理モードで起動します。 - > BOOK1.xls - >

windows 10では、すべてのExcelアプリケーションがメインプロセス、すなわちEXCEL.EXEになります。例については :「EXCEL.EXEが」非管理者モードで起動され、この場合のように

EXCEL.EXE 
     ->BOOk1.xls 
     ->BOOK2.xls 

、管理者権限が不足している場所をフォルダに保存するために失敗しています。

これは調査結果であり、あなたと共有したいと考えています。それは誰かが同様の種類の問題に直面するのを助けることを望みます。

関連する問題