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' 的形式,并将其与文件名的其余部分进行组合。
  • 使用路径和文件名打开目标工作簿。
  • 复制目标工作簿中的数据到当前工作簿。
  • 关闭目标工作簿,不保存更改。

使用步骤:

  1. 将代码复制到 Excel 中的 VBA 编辑器。
  2. 修改代码中的 filePath 变量,使其指向目标文件所在的文件夹。
  3. 运行宏。

注意:

  • 确保目标工作簿中包含名为 'data' 的工作表。
  • 确保目标工作簿的名称格式为 'Runing_Project_Status_560A_*yyyymmdd.xlsx',其中 * 代表任何字符,yyyymmdd 代表当前日期。
  • 可以根据需要修改代码中的文件名和工作表名称。

通过使用该宏,您可以在每天运行时自动打开最新更新的目标文件,并将数据复制到当前工作簿中,简化数据更新操作。


原文地址: https://www.cveoy.top/t/topic/o0vZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录