[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

我想用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文件,代码要怎么改?文件数量会不定时变动。

回复 4# 77七


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

TOP

回复 3# jiaodaoniu
已修改,你试试
bat小白,请多指教!谢谢!

TOP

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

回复 2# 77七


    谢谢老师,已经可以用了。还有小问题,就是当文件名里面有空格的时候,就打不开文件。

TOP

本帖最后由 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秒
如果不好用,等大佬帮你写...
bat小白,请多指教!谢谢!

TOP

返回列表