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

如何实现点击Excel Page2工单编号一键复制行数据到Page3

完善后的VBA代码实现

以下是补充完成的Page2工作表模块代码,实现点击C列工单编号时自动填充对应数据到Page3:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim sh As Worksheet, sh2 As Worksheet
    Dim targetRow As Long
    
    Set sh = ThisWorkbook.Sheets("Page2")
    Set sh2 = ThisWorkbook.Sheets("Page3")
    
    If Target.CountLarge = 1 Then
        If Not Intersect(Target, sh.Range("C:C")) Is Nothing Then
            targetRow = Target.Row
            
            ' 填充日期、时间、工单编号至Page3的E3:E5
            ' 若Page2中日期/时间的列位置不同,修改A/B为对应列字母
            sh2.Range("E3").Value = sh.Range("A" & targetRow).Value
            sh2.Range("E4").Value = sh.Range("B" & targetRow).Value
            sh2.Range("E5").Value = sh.Range("C" & targetRow).Value
            
            ' 填充分数至Page3的J3
            ' 若Page2中分数列不是D列,修改D为对应列字母
            sh2.Range("J3").Value = sh.Range("D" & targetRow).Value
            
            ' 复制E:BC列的Yes/No/NA答案至Page3的E7起始区域
            sh.Range("E" & targetRow & ":BC" & targetRow).Copy Destination:=sh2.Range("E7")
        End If
    End If
End Sub

关键修正与说明

  • 修正变量声明:原代码中sh未明确声明为Worksheet类型,现在统一指定类型避免潜在错误。
  • 改用CountLarge:替代Count防止选中大量单元格时出现溢出报错。
  • 灵活适配列位置:代码中假设日期在A列、时间在B列、分数在D列,若你的表格列布局不同,直接修改对应列标识即可。
  • 批量复制答案:通过Copy方法一次性复制整行的E到BC列数据,确保答案与Page2的列顺序完全对应。
  • 可选表头排除:如果需要避免点击C列表头时触发填充,可在targetRow = Target.Row后添加判断:If targetRow > 1 Then,将内部填充逻辑包裹进去。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:41:06