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

在Excel中匹配指定值并更新同行对应单元格内容

VBA代码修改:用指定单元格值查找并更新日期

以下是修改后的完整代码,直接使用「Billing actions!A2」的值作为查找条件,并完成对应行的日期更新:

Sub UpdateMasterEntryDate()
    Dim searchValue As Variant
    Dim found As Range
    Dim masterSheet As Worksheet
    Dim billingSheet As Worksheet
    
    ' 定义工作表对象,简化重复引用
    Set masterSheet = ThisWorkbook.Sheets("Master entries")
    Set billingSheet = ThisWorkbook.Sheets("Billing actions")
    
    ' 获取Billing actions!A2的查找值
    searchValue = billingSheet.Range("A2").Value
    
    ' 检查查找值是否为空,避免无效查找
    If IsEmpty(searchValue) Then
        MsgBox "Billing actions!A2单元格为空,请输入值后重试"
        Exit Sub
    End If
    
    ' 在Master entries的D列精确匹配查找值
    Set found = masterSheet.Columns("D").Find( _
        What:=searchValue, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        MatchCase:=False) ' 可根据需求开启/关闭大小写匹配
    
    If found Is Nothing Then
        MsgBox "未找到匹配的记录"
    Else
        ' 更新对应行的I列为当前日期,格式设为dd/mm/yyyy
        masterSheet.Cells(found.Row, "I").Value = Date
        masterSheet.Cells(found.Row, "I").NumberFormat = "dd/mm/yyyy"
        
        ' 后续要改为K列的话,替换上面两行的"I"为"K"即可:
        ' masterSheet.Cells(found.Row, "K").Value = Date
        ' masterSheet.Cells(found.Row, "K").NumberFormat = "dd/mm/yyyy"
        
        MsgBox "已更新第" & found.Row & "行的日期"
    End If
End Sub

关键改动说明

  • 替换查找来源:把原代码的InputBox直接替换为billingSheet.Range("A2").Value,无需手动输入,自动读取指定单元格的值
  • 增加空值校验:避免因A2单元格为空导致的无意义查找
  • 添加日期更新逻辑:找到匹配行后,用Date函数获取当前系统日期,同时设置单元格格式为dd/mm/yyyy
  • 灵活调整更新列:注释中明确标注了修改更新列的方法,只需替换列标识即可
  • 工作表对象化:通过定义工作表变量,让代码结构更清晰,后续修改工作表名称时只需改动一处

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:06:04