ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 比较复杂的检索后复制粘贴

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-24 15:21 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册


1、打开同一路径下的"PICKING LIST"文件夹;
2、找到"List-当月当日"文件夹后,按文件修改时间的升序打开一个文件名末尾不为"Read"且文件名不含"CY"或不含"HQ"或不含"RFI"的工作簿(被占用时跳到找下一个,没找到时退出整个sub),将打开后的工作簿的当前工作表的A2:W值复制粘贴到此处的A:W(总是往下递增粘贴);
3、将上述打开的工作簿另存为它本身工作簿名称+"Read",保存到它完全相同路径下并关闭;
4、循环上述123动作。
image.jpg
image.jpg

20240724.zip

506.24 KB, 下载次数: 6

TA的精华主题

TA的得分主题

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

20240724.zip

510.15 KB, 下载次数: 5

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-7-24 16:18 | 显示全部楼层
参与一下。。。

  1. Sub ykcbf()    '//2024.7.24
  2.     Set fso = CreateObject("scripting.filesystemobject")
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     Set reg = CreateObject("VBScript.Regexp")
  5.     Application.ScreenUpdating = False
  6.     Application.DisplayAlerts = False
  7.     Set sh = ThisWorkbook.Sheets("Org2")
  8.     p = ThisWorkbook.path & ""
  9.     With reg
  10.         .Global = False
  11.         .Pattern = "Read|CY|HQ|RFI"
  12.     End With
  13.     For Each f In fso.GetFolder(p).Files
  14.         If LCase$(f.Name) Like "*.xls*" Then
  15.             If InStr(f.Name, ThisWorkbook.Name) = 0 Then
  16.                 fn = fso.GetBaseName(f)
  17.                 If Not d.exists(fn) Then
  18.                     If Not reg.TEST(fn) Then
  19.                         d(fn) = ""
  20.                         Set wb = Workbooks.Open(f, 0)
  21.                         With wb.Sheets(1)
  22.                             r1 = .Cells(Rows.Count, 1).End(3).Row
  23.                             arr = .[a2].Resize(r1 - 1, 23)
  24.                         End With
  25.                         wb.SaveAs p & fn & "-Read"
  26.                         wb.Close
  27.                         r = sh.Cells(Rows.Count, 1).End(3).Offset(1).Row
  28.                         sh.Cells(r, 1).Resize(UBound(arr), 23) = arr
  29.                         fso.deletefile f
  30.                     End If
  31.                 End If
  32.             End If
  33.         End If
  34.     Next f
  35.     Set d = Nothing
  36.     Application.ScreenUpdating = True
  37.     MsgBox "OK!"
  38. End Sub
复制代码


评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-24 16:38 | 显示全部楼层



运行完全没问题,结果应该也没问题。但是您没有考虑到我这个AAA工作簿是在下图这个位置,划红线的说明您没考虑
image.jpg

TA的精华主题

TA的得分主题

发表于 2024-7-24 16:46 | 显示全部楼层
本帖最后由 ykcbf1100 于 2024-7-24 16:48 编辑
sampsonpon 发表于 2024-7-24 16:38
运行完全没问题,结果应该也没问题。但是您没有考虑到我这个AAA工作簿是在下图这个位置,划红线的说 ...

拜托,你那个附件中就没有那个子目录,你自己仔细看一下。
所以,做附件要认真一点的。
QQ_1721810878899.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-24 17:23 | 显示全部楼层
ykcbf1100 发表于 2024-7-24 16:46
拜托,你那个附件中就没有那个子目录,你自己仔细看一下。
所以,做附件要认真一点的。

好吧,我的问题。以后做附件知道了。谢谢!

TA的精华主题

TA的得分主题

发表于 2024-7-24 17:32 | 显示全部楼层
sampsonpon 发表于 2024-7-24 17:23
好吧,我的问题。以后做附件知道了。谢谢!

路径代码改一下就行了,简单。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-24 17:43 | 显示全部楼层
ykcbf1100 发表于 2024-7-24 17:32
路径代码改一下就行了,简单。
嗯嗯,这里改了一下可以了

image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-24 17:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

老师,有没有必要加一句:And InStr(f.Name, "~$") = 0,当碰到临时文件时

TA的精华主题

TA的得分主题

发表于 2024-7-24 19:02 | 显示全部楼层
sampsonpon 发表于 2024-7-24 17:49
老师,有没有必要加一句:And InStr(f.Name, "~$") = 0,当碰到临时文件时

可以加。。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 05:37 , Processed in 0.051343 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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