如何使用VBA将筛选后表格内容从一列复制粘贴到另一可见列
Excel 筛选状态下C列可见值同步到对应D列宏实现方案
需求说明
需实现筛选状态下仅将C列可见行的数值同步到对应行的D列,自动跳过被筛选隐藏的行,效果可参考下方示例:


实现步骤
- 打开目标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
相关产品推荐
相关产品推荐

