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

如何使用VBA将筛选后表格内容从一列复制粘贴到另一可见列

Excel 筛选状态下C列可见值同步到对应D列宏实现方案

需求说明

需实现筛选状态下仅将C列可见行的数值同步到对应行的D列,自动跳过被筛选隐藏的行,效果可参考下方示例:
示例图1
示例图2
示例图3

实现步骤

  • 打开目标Excel文件,按下Alt + F11唤起VBA编辑器
  • 在左侧项目面板右键点击当前工作簿,选择「插入」→「模块」
  • 将下方代码粘贴到模块编辑区域,按下F5运行即可完成同步

VBA 代码

Sub 同步C列可见值到D列()
    Dim visibleRange As Range
    Dim cell As Range
    
    ' 捕获无可见单元格的异常
    On Error Resume Next
    Set visibleRange = ActiveSheet.Range("C:C").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    
    If Not visibleRange Is Nothing Then
        For Each cell In visibleRange
            ' 跳过表头行,无表头可删除该判断条件
            If cell.Row > 1 Then
                ' 偏移1列到D列赋值
                cell.Offset(0, 1).Value = cell.Value
            End If
        Next
    End If
    MsgBox "已完成可见行数值同步"
End Sub

自定义调整说明

  • 若表格无表头,删除代码中If cell.Row > 1 Then和对应的End If语句即可
  • 若需固定操作指定工作表,将ActiveSheet替换为工作表名称,例如Sheets("销售数据")
  • 如需调整同步的列范围,修改Range("C:C")中的列号,以及Offset(0,1)的偏移量即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:48:03