【发布时间】:2019-11-11 15:39:55
【问题描述】:
我负责生成每周工作报告。我正在使用个人 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
代码运行良好,如果可能的话,只需使其动态化
编辑:感谢您到目前为止的 cmets。我将在此处添加一些说明:我在示例中使用的“工作簿 A/B”是固定名称,唯一会改变的是日期。该报告将始终使用星期一日期,因为我需要查看魔兽世界的总数,所以它是否落在假期无关紧要。一旦 2020 年到来,日期确实会更改为 xx.xx.20。
【问题讨论】:
-
日期是否总是本周的星期一和最后的星期一?如果星期一是假期怎么办?
-
新年过后会发生什么?
-
...基本上您需要解释您要查找的文件的规则是什么。
-
此外,这些名称并没有遵循我们目前已知的模式。它以
a开头,下周是b,第三周会发生什么?b和c? -
@Andreas 我假设
A和B是固定名称,只有日期发生变化......但我们仍然非常需要OP 来澄清命名约定。