excel - 动态拉取 Excel 工作簿
问题描述
我负责运行每周的工作报告。我正在使用个人 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”是固定名称,唯一会改变的是日期。该报告将始终使用星期一日期,因为我需要查看魔兽世界的总数,所以它是否落在假期无关紧要。一旦 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, vbMonday), "MM.D.YY") & ".xlsx"
wkbB = Format(Date - Weekday(Date - 7, vbMonday), "MM.D.YY") & ".xlsx"
End If
推荐阅读
- javascript - 在 ReactJS 中定义函数时,仅在括号中使用括号和花括号有什么区别?
- javascript - 如何修复套接字 io 中的 400 错误错误请求?
- c++ - 无法生成 Mandelbrot 矩阵以将其保存到 C++ 线程中的文件
- c# - 我无法反序列化我的 json api 上的可变属性日期
- java - 需要从文件中获取一行到队列中,而不是整个文件文本
- rest - 套接字可以代替 HTTP 请求吗?(套接字与 http)
- javascript - 如何修复 npm run dev 给出的错误?
- flutter - Flutter 和 WordPress Api,不是从网站获取图片,而是从 assets.image 获取
- python - 在reportlab中的表数据变量内的值中添加新行
- pandas - 如何按 2 列分组和过滤?