VBA 宏:自动更新文件名并复制数据
VBA 宏:自动更新文件名并复制数据
本 VBA 宏代码演示如何自动更新 Excel 文件名,并从指定工作簿中复制数据到当前工作簿。代码使用日期函数和文件路径构建动态文件名,方便每天运行时自动更新数据。
Sub CopyData()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim filePath As String, fileName As String
Set wb1 = ThisWorkbook '当前工作簿
'构建完整的文件路径
filePath = 'H:\Engineering\PT-BE-ETS-HZ_Act\EIS_Report\Pronovia\'
fileName = 'Runing_Project_Status_560A_*' & Format(Date, 'yyyymmdd') & '.xlsx'
'打开目标工作簿
Set wb2 = Workbooks.Open(filePath & fileName)
Set ws1 = wb1.Sheets('data') '当前工作簿的data sheet
Set ws2 = wb2.Sheets('data') '目标工作簿的data sheet
'复制数据
ws2.Range('A1').CurrentRegion.Copy
ws1.Range('A1').PasteSpecial xlPasteValues
wb2.Close False '关闭目标工作簿,不保存
End Sub
代码说明:
filePath变量存储文件夹路径,fileName变量存储文件名。- 使用
Format函数和Date函数将当前日期格式化为 'yyyymmdd' 的形式,并将其与文件名的其余部分进行组合。 - 使用路径和文件名打开目标工作簿。
- 复制目标工作簿中的数据到当前工作簿。
- 关闭目标工作簿,不保存更改。
使用步骤:
- 将代码复制到 Excel 中的 VBA 编辑器。
- 修改代码中的
filePath变量,使其指向目标文件所在的文件夹。 - 运行宏。
注意:
- 确保目标工作簿中包含名为 'data' 的工作表。
- 确保目标工作簿的名称格式为 'Runing_Project_Status_560A_*yyyymmdd.xlsx',其中 * 代表任何字符,yyyymmdd 代表当前日期。
- 可以根据需要修改代码中的文件名和工作表名称。
通过使用该宏,您可以在每天运行时自动打开最新更新的目标文件,并将数据复制到当前工作簿中,简化数据更新操作。
原文地址: https://www.cveoy.top/t/topic/o0vZ 著作权归作者所有。请勿转载和采集!