2017-06-08 13 views
0

私は2つのExcelシートを使用してそれらを開くことができます。 3 cmdが使用されます。cmdを使用して特定の順序でExcelファイルを起動する方法は?

1つは、sheet1(OPENEXCEL1.bat)を呼び出します。

"D:\APPS\Microsoft Office\Office14\excel.exe" /e "C:\Users\Desktop\Sheet1.xlsx. 

2番目のシート(OPENEXCEL2.bat)が呼び出されます。

"D:\APPS\Microsoft Office\Office12\excel.exe" /e "C:\Users\Desktop\Sheet2.xlsx. 

3番目のコマンドは、前の2つのcmdを呼び出すマスタとして機能します。現在、2枚のExcelシートは、シート1からデータを取得シート2 VBAを介して接続されている

start cmd /k call "OPENEXCEL1.bat" 
start cmd /k call "OPENEXCEL2.bat" 

。 sheet1がsheet2の前に最初に開くと、データ転送は正常です。しかし、sheet1がsheet1の前に開くと、エラーが発生します。

私はこのcmdを使用したとき、Excelシートの開いている順番が異なることに気付きました。シート1が最初に開いて問題にならないことがある、あるいは時には先に述べたように問題が発生することがあります。

私はcmdを初めて使うことを考慮して、cmd1に1を開いてからsheet2に進めたいとcmdに伝えるコマンドがありますか?

+1

でしょう。 2つの 'start'コマンドの間に' timeout 5'を使います。これは、Excelに2番目のものが要求される前に最初のものを開く時間を与えます。 (私は非常に長い5秒の音を知っていますが、あなたは確かに安全な側にとどまりたいです。)ただ好奇心から:1つではなく3つのバッチファイルを使うのはなぜですか?そしてなぜ/ k?そしてなぜ単に「C:\ Users \ Desktop \ Sheet1.xlsx」を開くだけではないのですか? – Stephan

+0

bcoz 2のExcelファイルは異なるバージョンのExcelを使用しています。異なるインスタンスで使用し、それぞれExcel 07と10を使用します。私は両方を1つのcmdに入れようとしたとき、常にデフォルトの07になってしまいました。それが私が分割した理由です。 – hjh93

+0

タイムアウトも機能します。ありがとう – hjh93

答えて

0

@Stephanによると、あなたのスクリプトにはいくつかの問題があります。問題を解決するには、スクリプトしか使用できません。

OpenExcel.bat

@echo off 

"D:\Foo\Bar.xlsx" 
timeout /t 5 
"D:\Foo\Baz.xlsx" 

これは、ロジックの問題よりも、タイミングの問題だ、Bar.xlsxを開いて5秒待ってオープンBaz.xlsx

関連する問題