找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20559|回复: 4

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

[复制链接]
发表于 2022-12-11 20:15:27 | 显示全部楼层 |阅读模式
各位老师,有个批处理批量打开表格运行宏的问题

我想用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文件,代码要怎么改?文件数量会不定时变动。
 楼主| 发表于 2022-12-12 11:44:11 | 显示全部楼层
回复 4# 77七


    已经完美解决了我的问题。感谢老师。
发表于 2022-12-11 22:09:54 | 显示全部楼层
回复 3# jiaodaoniu
已修改,你试试
 楼主| 发表于 2022-12-11 21:36:44 | 显示全部楼层
本帖最后由 jiaodaoniu 于 2022-12-11 22:05 编辑

回复 2# 77七


    谢谢老师,已经可以用了。还有小问题,就是当文件名里面有空格的时候,就打不开文件。
发表于 2022-12-11 20:58:54 | 显示全部楼层
本帖最后由 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秒
如果不好用,等大佬帮你写...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 10:11 , Processed in 0.017972 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表