ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 选择同一文件夹下所有工作簿里的指定内容到新的工作簿,并改名中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-17 14:51 | 显示全部楼层 |阅读模式
各位大佬,需要把名称为‘原数据’文件夹里的工作簿依次打开,每一个打开的工作簿里,
选取 B列 到工作簿“模板‘ A列,
选取 D列 到工作簿“模板‘  B列,
选取L列 到工作簿“模板‘  D列,
选取N列 到工作簿“模板  E列,
选取M列 到工作簿“模板‘ G列,
选取E列 到工作簿“模板‘  H列,
选取F列 到工作簿“模板‘  I列,
取相同工作簿名称,放入新文件夹里

测试1.zip

66.03 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2023-4-17 15:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附件供参考。。。

QQ图片20230417153222.png

测试1.zip

99.89 KB, 下载次数: 17

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-4-17 16:41 | 显示全部楼层
ykcbf1100 发表于 2023-4-17 15:33
附件供参考。。。

看似简单的代码,实则看得出大佬的强大。学习了
b = [{2,4,80,12,14,80,13,5,6}] 用得很妙,

TA的精华主题

TA的得分主题

发表于 2023-4-17 17:27 | 显示全部楼层
xlj310 发表于 2023-4-17 16:41
看似简单的代码,实则看得出大佬的强大。学习了
b = [{2,4,80,12,14,80,13,5,6}] 用得很妙,

如果真能理解,那你对数组还是有一定基础的。

TA的精华主题

TA的得分主题

发表于 2023-4-17 18:13 | 显示全部楼层
表格统计一下字段,可以用字典来匹配。。。

TA的精华主题

TA的得分主题

发表于 2023-4-18 09:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可不可以直接在原来的工作簿上面操作,删除多余的列就行了呢?

TA的精华主题

TA的得分主题

发表于 2023-4-18 09:50 | 显示全部楼层
xlj310 发表于 2023-4-17 16:41
看似简单的代码,实则看得出大佬的强大。学习了
b = [{2,4,80,12,14,80,13,5,6}] 用得很妙,

真心请教这段代码的意思。感谢 。

TA的精华主题

TA的得分主题

发表于 2023-4-19 11:05 | 显示全部楼层
星语心愿 发表于 2023-4-18 09:50
真心请教这段代码的意思。感谢 。

b = [{2,4,80,12,14,80,13,5,6}]
这个就是 一个列序号数组,  其中的80列是因为一般用不到80列,搞了一个空值过来占位。
第一个妙处就是把不规则的列赋值做了数组列号,就可以用循环,如果不这样的话,一般就得罗列赋值。代码会显得很长很笨。
这里还有一个妙处是 这个方括号 里的是常量数组。 平常用[a1]这样的表示较多,但定义数组一般是直接arryay(1,2,3,4,5)这样。用方括号也体现了大佬的经验丰富。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-4-19 11:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xlj310 发表于 2023-4-19 11:05
b = [{2,4,80,12,14,80,13,5,6}]
这个就是 一个列序号数组,  其中的80列是因为一般用不到80列,搞了一 ...

理解得比较透彻。
一、80确实是用来占位的,但需要注意的是,因为80列并不存在,所以,运行时会出现错误,所以加了一个容错语句;
二、这个数组的下标是从1开始的,这个不同于Array数组(下标从0开始)。从1开始的好处在于可以和正常列循环并轨。

TA的精华主题

TA的得分主题

发表于 2023-4-19 11:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
星语心愿 发表于 2023-4-18 09:45
可不可以直接在原来的工作簿上面操作,删除多余的列就行了呢?

那是另一个题目了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 12:53 , Processed in 0.041197 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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