热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

动态提取Excel工作簿

我负责运行每周的工作报告。我正在使用个人VBA模块来构建代码。工作簿都将使

我负责运行每周的工作报告。我正在使用个人VBA模块来构建代码。工作簿都将使用相同的命名约定,唯一的区别是工作簿末尾的日期。例如:我想从名为“ Workbook A 10.28.19.xlsx”的工作簿A拉入名为“ Workbook B 11.4.19.xlsx”的工作簿B。我该如何做到这一点,以使我不必每周手动在代码中更改工作簿名称?

刚刚开始学习VBA,我已经考虑过将通配符用作字符串引用,但我认为命名约定的性质使其变得更难。

这是我到目前为止所拥有的:

Workbooks("workbook A
10.28.19.xlsx").Worksheets("sheet1").Range("AD:AE").Copy _
Workbooks("workbook B
11.4.19.xlsx").Worksheets("sheet1").Range("AD:AE")
End Sub

代码运行良好,如果可能的话,只需使其动态化即可。

编辑:谢谢您到目前为止的评论。我将在此处添加一些说明:我在示例中使用的“工作簿A / B”是固定名称,唯一会改变的是日期。该报告将始终使用星期一的日期,因为我需要查看WoW总数,因此休假并不重要。一旦2020年临近,日期的确将更改为xx.xx.20。


我认为这就是您所需要的。

它将首先查看今天是否是星期一,然后将今天的日期用作工作簿A和B,作为星期一的最后一周。
如果不是星期一,则它将找到前一个星期一作为A,然后又回到一周前,找到前一个星期一作为B。

If Weekday(Date,vbMonday) = 1 Then
wkbA = Format(Date,"MM.D.YY") & ".xlsx"
wkbB = Format(Date - Weekday(Date - 1,vbMonday),"MM.D.YY") & ".xlsx"
Else
wkbA = Format(Date - Weekday(Date - 1,"MM.D.YY") & ".xlsx"
wkbB = Format(Date - Weekday(Date - 7,"MM.D.YY") & ".xlsx"
End If

推荐阅读
author-avatar
WYY
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有