求助:按A列Y/X条件筛选复制指定区域的Excel VBA代码
需求实现方案
功能说明
实现A2:A6列标记为Y的行,将对应B-E列内容自动复制到F9:I13的对应位置。
完整VBA代码
Sub 按条件复制匹配行() Dim rowNum As Integer ' 循环遍历A2到A6所有行 For rowNum = 2 To 6 ' 判断当前行A列取值是否为Y,如需不区分大小写可替换为 UCase(Range("A" & rowNum)) = "Y" If Range("A" & rowNum) = "Y" Then ' 对应行内容复制到目标区域对应位置:A2对应F9行,A3对应F10行,以此类推 Range("B" & rowNum & ":E" & rowNum).Copy Range("F" & (rowNum + 7) & ":I" & (rowNum + 7)) End If Next rowNum ' 清除剪贴板缓存 Application.CutCopyMode = False End Sub
补充提示:如果仅需要复制数值不需要保留原单元格格式,可以将复制逻辑替换为以下两行代码:
Range("B" & rowNum & ":E" & rowNum).Copy Range("F" & (rowNum + 7) & ":I" & (rowNum + 7)).PasteSpecial xlPasteValues
操作步骤
- 打开目标Excel工作表,按下
Alt + F11唤起VBA开发工具 - 在左侧项目列表右键点击当前工作表,选择「插入」→「模块」
- 将上述代码粘贴到模块编辑窗口中
- 按下
F5即可直接运行代码完成操作
需求示意图

内容的提问来源于stack exchange,提问作者Pulung Udara Manggiling
相关产品推荐
相关产品推荐

