我正在编写一个批处理脚本,除其他外,打开一个启用宏的excel文件(.xlsm):
2>nul (
>>%CSF% echo off
) && (start "cmdTitle" /B excel %CSF% /e /automation) || (echo could not open)
%CSF%是指excel文件的完整路径的变量,即“C:\ test \ testfile.xlsm”(包括目录/文件名中可能有空格的情况的引号)
此代码检查文件是否被锁定以进行编辑,如果不是,则会打开文件(启动命令),否则无法打开回声。
如果我从Windows资源管理器中打开文件或在批处理脚本中运行以下文件,则文件打开正常。
set CSF="C:\Test Folder\Test.xlsm"
start "cmdTitle" /B excel %CSF% /e /automation
但是,在检查锁定文件时运行批处理文件总是会导致excel说“Excel在'filename.xlsm'中找到了不可读的内容”,您要恢复此工作簿的内容吗?从文件中删除宏。
编辑:除了文件未正确打开之外,任何在Excel打开时执行某些操作的excel加载项(例如,删除和重新创建命令栏)也无法加载:“无法访问Addin.xla”在单独运行命令和重定向之间导致行为差异的原因是什么? TIA
答案 0 :(得分:1)
在十六进制查看器中检查文件的结尾,看看有什么(如果有的话)附加到结尾。
您发布的代码工作正常(也可以回显excel命令)。其他一些代码可能就是问题所在。