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

如何在VBA中if条件成立后继续执行宏实现逐行复制功能

VBA 行循环复制功能实现

完整代码

Sub kepletmasolos()
    Dim targetWs As Worksheet
    Dim checkRow As Long
    
    ' 绑定指定工作表,无需手动选中
    Set targetWs = ThisWorkbook.Worksheets("XTR MSTR")
    ' 从第4行开始检查K列状态
    checkRow = 4
    
    ' K列当前行非空时持续运行,为空直接终止
    Do While Not IsEmpty(targetWs.Range("K" & checkRow))
        ' 复制上一行L列内容到当前行L列
        targetWs.Range("L" & checkRow - 1).Copy targetWs.Range("L" & checkRow)
        checkRow = checkRow + 1
    Loop
End Sub

逻辑说明

  • 取消了原代码的Select操作,直接绑定工作表对象,运行效率更高,也不会触发工作表视图跳转
  • 循环起始行设为4,完全匹配「K4非空则复制L3到L4」的需求,自动逐行向下判断
  • 无需手动设置终止行号,只要K列当前行单元格为空,循环会自动停止

初学者使用提示

  • 如果你需要保留原有K3非空时复制L2到L3的逻辑,在循环代码前补上你原有代码里的If判断段即可
  • 运行前请确认工作簿中存在名为XTR MSTR的工作表,避免触发下标越界报错

内容的提问来源于stack exchange,提问作者Tamás Hrubos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:27:03