You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从名称相似的工作簿中自动提取指定最新工作簿数据到TES_Workbook

实现TES_Workbook自动抓取AKS最新文件数据的解决方案

你可以根据自己的使用习惯选择以下两种方案:

方案1:VBA脚本实现全自动刷新(支持打开文件自动触发)

操作步骤如下:

  • 打开TES_Workbook,按Alt+F11调出VBA编辑器
  • 右键点击左侧项目列表里的当前工作簿名称,选择「插入>模块」
  • 将下方代码粘贴到模块编辑区,按照注释修改对应路径、工作表名和数据范围
Sub 抓取最新AKS文件数据()
    Dim folderPath As String, fileName As String
    Dim regEx As Object, latestDate As Long, latestFile As String
    Dim wbSource As Workbook, wsTarget As Worksheet
    
    ' 下方修改为你的AKS文件实际存放的文件夹路径
    folderPath = "C:\Users\XXX\Desktop\AKS文件存放文件夹\"
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.Pattern = "\d{8}" ' 匹配文件名中的8位日期数字,兼容带/不带下划线的命名格式
    latestDate = 0
    
    ' 遍历文件夹下所有AKS开头的Excel文件
    fileName = Dir(folderPath & "AKS*.xls*")
    Do While fileName <> ""
        If regEx.test(fileName) Then
            currentDate = CLng(regEx.Execute(fileName)(0))
            If currentDate > latestDate Then
                latestDate = currentDate
                latestFile = fileName
            End If
        End If
        fileName = Dir
    Loop
    
    If latestFile = "" Then
        MsgBox "未找到符合命名规则的AKS文件"
        Exit Sub
    End If
    
    ' 读取最新文件数据,下方按需修改工作表名和数据范围
    Set wbSource = Workbooks.Open(folderPath & latestFile)
    Set wsTarget = ThisWorkbook.Sheets("数据存放表") ' 修改为TES_Workbook里存数据的工作表名
    wbSource.Sheets("源数据表").Range("A1:Z2000").Copy wsTarget.Range("A1") ' 修改为实际需要抓取的范围
    wbSource.Close SaveChanges:=False
    
    MsgBox "数据已从 " & latestFile & " 成功更新"
End Sub
  • 如果你需要打开TES_Workbook时自动执行抓取,可在VBA编辑器的ThisWorkbook对象里添加代码:Private Sub Workbook_Open() Call 抓取最新AKS文件数据 End Sub

方案2:Power Query无代码配置(适合不熟悉VBA的用户)

操作步骤如下:

  • 打开TES_Workbook,点击顶部菜单栏「数据>获取数据>自文件>自文件夹」,选择存放AKS文件的文件夹后点击确定
  • 待加载出文件夹内所有文件列表后,点击「名称」列的筛选按钮,选择「文本筛选>开头为」,输入AKS后确定,过滤掉非AKS开头的文件
  • 点击「添加列>自定义列」,输入公式=Text.Select([Name],{"0".."9"}),确定后会生成仅包含文件名里数字的新列,也就是我们需要的日期序列
  • 选中新生成的自定义列,点击「降序排序」,排序后第一行就是日期最新的AKS文件
  • 右键点击第一行的Content单元格,选择「作为新查询添加」,后续按照指引加载对应工作表的数据即可
  • 后续需要更新数据时,直接点击顶部菜单栏「数据>全部刷新」即可自动抓取当前最新的AKS文件数据

补充说明:如果文件名里的日期和文件实际上传日期不一致,你可以直接对文件列表的「修改日期」列做降序排序,取第一行文件即可,不需要额外提取文件名里的日期。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:54:04