ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 同时打开xlsx表和xlsm宏表后,如何运行宏程序后,把运行结果显示在xlsx上

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-13 08:35 | 显示全部楼层 |阅读模式
有个案例,左边是标签信息表格,右边是写好的宏表,需要利用宏把标签表格里面零件图那一列的图片全部提取出来另存到一个文件夹里,每次的标签表格内容都是不同的,但是格式都是一样,每次都是把标签表格打开,宏表也打开,然后当前表格选中为标签表格,再点击宏表上的控件就可以了,想请问下这个功能是怎么实现的呢?这个我就不上传了,是别人写的宏,有密码。因为我每天也要对不同内容,但格式一样的表进行相同的操作,所以我想写好宏之后,直接在目标表格上运行,怎么实现?

表格案例

表格案例

标签表格

标签表格

宏表

宏表

提取

提取

提取成功

提取成功

TA的精华主题

TA的得分主题

发表于 2023-2-13 08:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
上传附件,具体描述你的需求

TA的精华主题

TA的得分主题

发表于 2023-2-13 09:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果你学过vba,你就不会发这帖了,那靠我们打字说明,你也还是不会,在你不传附件前提下,这就是无解,办不到。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-2-13 10:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
盲猜是文件操作方面的。
把xlsm文件和xlsx文件放在一个文件夹,这样就有相对路径了。xlsx文件 可以通过xlsm中 ThisWorkbook.Path & "\*.xlsx"来找到。
set wb= workbooks.open(ThisWorkbook.Path & "\*.xlsx")
  wb.sht.range()就可以继续操作了

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-15 08:28 | 显示全部楼层
幼稚园儿童 发表于 2023-2-13 09:04
如果你学过vba,你就不会发这帖了,那靠我们打字说明,你也还是不会,在你不传附件前提下,这就是无解,办 ...

上传了附件你就知道了吗?这个宏是别人写的,有密码,开始就说了,而且我的需求并不是如何提取表格里的图片,只是想知道为什么可以在别的表哥上运行写好的宏

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-15 08:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
3190496160 发表于 2023-2-13 08:47
上传附件,具体描述你的需求

好的,我会上传附件。一个是标签表,一个是宏表,把两个表都打开,然后选择到标签表格的界面上,直接点宏表的控件,就可以提取,如果是在宏表的界面运行,会报错。我想知道这是怎么实现的,因为比如说每天都有不同的表格要处理,但是他们的格式都是一样的,处理方式也是一样的,我想写好宏之后,在每天得到的不同的表格上运行,这样就方便一些

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-15 08:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大佬们可以试下在你们的电脑上能实现我说的功能

Desktop.rar

127.28 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-15 08:37 | 显示全部楼层
f6671193 发表于 2023-2-13 10:32
盲猜是文件操作方面的。
把xlsm文件和xlsx文件放在一个文件夹,这样就有相对路径了。xlsx文件 可以通过xls ...

感谢大佬,你把我的意思理解成运行宏的时候打开表格了。但其实我的意思是同时打开要处理的表和写好的宏表,然后把当前表格选定到要处理的表上,点击宏表上的控件,它就可以对要处理的表进行处理了。比如说每天都会有生成的数据表,但是它们的格式,还有对它们的处理方式也都一样,一般都是在当前表写宏,运行的时候就是 对当前表格的内容处理,我想把写好一个宏了,对每天要处理的表格直接处理,这样就很方便了。不知道我说明白没

TA的精华主题

TA的得分主题

发表于 2023-2-15 09:00 | 显示全部楼层
double.C 发表于 2023-2-15 08:37
感谢大佬,你把我的意思理解成运行宏的时候打开表格了。但其实我的意思是同时打开要处理的表和写好的宏表 ...

1、看你这意思你是想知道如何多文件同时操作,这个不难,无非就是同时打开两个不同的文件,并能有效区分和识别它们,但你要对基本的vba有所了解。如果你对vba完全不知道,无论怎么说都是没用。
2、4楼的方法就是常用的基本方法:
     set wb=workbooks.open(...)
     其中 wb是工作簿对象,一般要事先定义,不过vba有个好处是不定义也不会出错,系统会自动定义;
     workbooks.open就是工作簿打开,参数则是被打开文件的路径和文件名,4楼已经详细写上了;
3、如果要打开多个文件,可写多个set:
     set wb1=workbooks.open(...)
     set wb2=workbooks.open(...)
     set wb3=workbooks.open(...)
     这样同时打开了3个文件,分别取名wb1,wb2,wb3,打开文件关联的对象名只能在运行宏的时候有效,退出宏之后就失效了,你可以简单把对象名称看成是变量;
4、不同文件的数据引用:
     wb1.worksheets(1).cells(1,1)="A1"   '对第一个打开文件的第一个工作表的单元格a1赋值“A1”;
     wb3.worksheets(1).cells(1,1)=wb2.worksheets(1).cells(1,1)   '把第二个打开文件的第一个工作表的单元格a1的值传送到第三个打开文件的第一个工作表的单元格a1;

     上面最后一行的方法我猜测就是你想知道的内容,如果不是,我就无能为力了。

TA的精华主题

TA的得分主题

发表于 2023-2-15 10:21 | 显示全部楼层
double.C 发表于 2023-2-15 08:28
上传了附件你就知道了吗?这个宏是别人写的,有密码,开始就说了,而且我的需求并不是如何提取表格里的图 ...

D:\360极速浏览器下载\Desktop\图片1.png是这个意思吗
图片1.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 06:24 , Processed in 0.038872 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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