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

如何在VBA中使用宏获取Excel各软件对应的最新记录数据

Excel 版本控制工具 Overview 页自动同步最新记录 VBA 实现方案

前置假设(和你描述的表结构完全对齐,若有差异可按后面的说明修改)

  • All Records Sheet 列顺序:A列=软件名称、B列=新版本号、C列=员工姓名、D列=更新说明、E列=日期,首行为表头,数据从第2行开始,新提交记录默认追加到表的最后一行
  • Overview Sheet 固定3个软件分别在第2、3、4行(A2=Software_one、A3=Software_two、A4=Software_three),列顺序和All Records Sheet完全一致,首行为表头

完整VBA代码

Sub SyncLatestSoftwareVersion()
    Dim wsRecords As Worksheet, wsOverview As Worksheet
    Dim lastRowRecords As Long, i As Long, j As Long
    Dim softwareName As String
    
    ' 绑定工作表,直接使用你定义的表名
    Set wsRecords = ThisWorkbook.Worksheets("All Records Sheet")
    Set wsOverview = ThisWorkbook.Worksheets("Overview Sheet")
    
    ' 获取All Records Sheet最后一行有效数据的行号
    lastRowRecords = wsRecords.Cells(wsRecords.Rows.Count, "A").End(xlUp).Row
    
    ' 遍历Overview页的3个固定软件(行号2到4)
    For i = 2 To 4
        softwareName = wsOverview.Cells(i, "A").Value
        ' 从All Records最后一行倒序查找,第一个匹配的就是最新提交的记录
        For j = lastRowRecords To 2 Step -1
            If wsRecords.Cells(j, "A").Value = softwareName Then
                ' 匹配成功后同步对应字段
                wsOverview.Cells(i, "B").Value = wsRecords.Cells(j, "B").Value
                wsOverview.Cells(i, "C").Value = wsRecords.Cells(j, "C").Value
                wsOverview.Cells(i, "D").Value = wsRecords.Cells(j, "D").Value
                wsOverview.Cells(i, "E").Value = wsRecords.Cells(j, "E").Value
                ' 找到后直接跳出循环,查找下一个软件
                Exit For
            End If
        Next j
        ' 无对应软件的提交记录时清空原有内容,不需要可删除此行
        If j < 2 Then wsOverview.Range("B" & i & ":E" & i).ClearContents
    Next i
    
    ' 同步完成提示,不需要可删除此行
    MsgBox "最新版本记录同步完成", vbInformation
End Sub

绑定按钮使用步骤

  1. 按Alt + F11调出VBA编辑器,右键左侧工程栏你的工作簿名称,选择「插入」-「模块」,把上述代码粘贴到空白模块中
  2. 保存文件为.xlsm格式(启用宏的工作簿)
  3. 回到Overview Sheet,点击「开发工具」-「插入」-「表单控件(按钮)」,在页面合适位置绘制按钮,弹出的宏选择窗口选中SyncLatestSoftwareVersion,确认即可

自定义修改说明

  • 列顺序不匹配的话,直接修改代码里对应的列字母即可,比如版本号存在All Records Sheet的C列,就把wsRecords.Cells(j, "B").Value中的B改为C
  • 后续新增固定软件的话,修改For i = 2 To 4的结束行号即可,比如新增第4个软件在第5行,就改为For i = 2 To 5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:09:02