Board logo

标题: [文件操作] 各位老师,有个批处理批量打开表格运行宏的问题 [打印本页]

作者: jiaodaoniu    时间: 2022-12-11 20:15     标题: 各位老师,有个批处理批量打开表格运行宏的问题

各位老师,有个批处理批量打开表格运行宏的问题

我想用bat文件来打开指定的表格,并运行里面指定的宏(如果手动打开这些文件不触发宏)
我在网上搜到一个教程,“www.cnblogs.com/redufa/p/13698550.html”  bat打开excel并自动运行VBA程序 - redufa - 博客园 (cnblogs.com)
参考里面的模板,改了一个打开单个表运行宏的bat文件。
代码如下:

cd /d %~dp0
set exeName=EXCEL.exe
set EXEPATH="C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
set fileName="bat1.xlsm"
set cmdMsg=/batOpen
%exePath% %fileName%  %cmdMsg%
pause

我现在想用bat文件批量打开多个相同的文件并运行指定宏的。
这个批量运行的bat文件,代码要怎么改?文件数量会不定时变动。
作者: 77七    时间: 2022-12-11 20:58

本帖最后由 77七 于 2022-12-11 22:11 编辑

  1. @echo off
  2. cd /d %~dp0
  3. set exeName=EXCEL.exe
  4. set EXEPATH="C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
  5. for /f "delims=" %%i in ('dir /b /a-d *.xlsm') do (
  6.     setlocal enabledelayedexpansion
  7.     set "fileName=%%~nxi"
  8.     set cmdMsg=/batOpen
  9.     %exePath% "!fileName!" !cmdMsg!
  10.     endlocal
  11.     pause
  12. )
  13. pause
复制代码
自己先备份文件,先测试...

和需要处理的xlsm文件放在同一目录下
不知道宏是怎么运行的...要处理多久?for语句里的pause视情况改为 timeout 如 timeout 5     延时5秒
如果不好用,等大佬帮你写...
作者: jiaodaoniu    时间: 2022-12-11 21:36

本帖最后由 jiaodaoniu 于 2022-12-11 22:05 编辑

回复 2# 77七


    谢谢老师,已经可以用了。还有小问题,就是当文件名里面有空格的时候,就打不开文件。
作者: 77七    时间: 2022-12-11 22:09

回复 3# jiaodaoniu
已修改,你试试
作者: jiaodaoniu    时间: 2022-12-12 11:44

回复 4# 77七


    已经完美解决了我的问题。感谢老师。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2