ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 365|回复: 2

[已解决] 使用一个VBA让多表宏操作的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-20 19:46 | 显示全部楼层 |阅读模式
本帖最后由 天地一相 于 2023-5-21 07:53 编辑

感谢帮助!见附件及运行报错。

缘由:想用一个专门的表内的VBA对同文件夹内指定的3个文件操作,让这3个表打开一个执行一个,结束关闭后进行下一个表的操作。(同一文件夹内有很多文件的,不能遍历,只能指定具体的几个。)
问题1:只能完成对第一个文件的打开和宏执行。就提示下一个文件找不到,可明明在呀?
问题2:若文件名含短横杠,执行宏的步骤时就会提示找不到文件。
特此求助,请看看“执行多任务”文件里的代码哪里错了,感谢。

多表任务.rar

77.05 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2023-5-20 20:56 | 显示全部楼层
1. 计算测速-C.xlsb 两边需要加单引号

image.png

2. 你用 Workbooks.Open 打开子文件,然后子文件调用了 Application.Quit,这样会导致主文件也一同退出关闭的。
3. 子文件代码调用了 ThisWorkbook.Close 似乎造成了异常中断,我这里测试运行完第一个子文件代码,主程序就停止往下运行了。

所以你需要把子文件的 ThisWorkbook.Close 和 Application.Quit 去掉,然后在主文件中关闭子文件
  1. With Workbooks.Open(ThisWorkbook.Path & "\计算测速A.xlsb")
  2.     Application.Run ("'" & .Name & "'!模块1.AutoCalculate")
  3.     .Close
  4. End With
复制代码


或者你在主文件每次创建一个新的 "Excel.Application" 对象来运行子文件,这样你的子文件代码就不需要修改了
  1. Set app = CreateObject("Excel.Application")
  2. app.Workbooks.Open (ThisWorkbook.Path & "\计算测速-c.xlsb")
  3. app.Run "'计算测速-c.xlsb'!模块1.AutoCalculate"
复制代码





评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-20 23:23 | 显示全部楼层
tmplinshi 发表于 2023-5-20 20:56
1. 计算测速-C.xlsb 两边需要加单引号

非常感谢!第一个方法我特喜欢,我的水平能理解和使用。验证正确!我改代码很方便,只需要在不要的语句前面加撇号变注释,喜欢第一个方案还有一个原因就是调整文件名只需要改动一个位置,省事。
再次感谢你!对了,仔细看你说的,我一下就明白我之前的困惑在哪里了。之前,我最早测试的文件是没有退出语句的,后来加了。加的时候还想,应该不需要加,因为没这句子时,测试也是能打开执行然后退出目标文件的。那时测试就是对的。后来不行了,就纳闷到底是哪里错了,之前好好的呀,怎么就不行了。还想是不是计算量大了,就又加了延时等待,还是不行。又开始各种瞎猜还是不行,最终只好求助了。
谢谢你。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 07:35 , Processed in 0.033594 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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