如何通过cmd以特定顺序启动Excel文件?

时间:2017-06-08 09:07:05

标签: excel batch-file cmd

我有2张excel表,使用cmd打开它们。使用3厘米。

一次调用sheet1(OPENEXCEL1.bat)。

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

第二次调用sheet2(OPENEXCEL2.bat)。

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

第三个充当前一个2厘米的主人。

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

目前,2张excel表格通过VBA连接,其中sheet2从sheet1获取数据。如果sheet1在sheet2之前首先打开,则数据传输正常。但是,如果sheet2在sheet1之前打开,则会发生错误。

当我使用这个cmd时,我注意到Excel工作表打开的顺序有时会有所不同。这意味着有时sheet1首先打开导致没有问题,或者有时打开sheet2会导致问题,如前所述。

考虑到我是cmd的新手,是否有一个命令可以告诉cmd我想让sheet1打开1st然后继续写入sheet2?

2 个答案:

答案 0 :(得分:1)

[编辑:为了使其正常工作,在会话期间至少让 Excel 首先启动一次,并且可能在开始打开实际文件之前给它超时几秒钟]

我刚刚找到了一种向 Excel“解释”以非常具体的顺序打开一组 Excel 文件而不使用超时(更快!)的方法,使用 start 命令,只需将初始文件的请求行加倍或组或文件(无需将最后一个翻倍)希望对您有所帮助!:

start "" "C:\Users\Desktop\Sheet1.xlsx"
start "" "C:\Users\Desktop\Sheet1.xlsx"

start"" "C:\Users\Desktop\Sheet2.xlsx"

编辑:或者,如果在系统会话期间尚未打开 Excel,请先打开它,它会让您更好地控制订单:

start "" "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
timeout 1
start "" "C:\Users\Desktop\Sheet1.xlsx"
start "" "C:\Users\Desktop\Sheet1.xlsx"

start"" "C:\Users\Desktop\Sheet2.xlsx"

答案 1 :(得分:0)

正如@Stephan所说,你的脚本存在一些问题。您只能使用 1 脚本来解决问题。

OpenExcel.bat

@echo off

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

这将打开Bar.xlsx,等待5秒,然后打开Baz.xlsx