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

如何实现交叉式数据复制?现有VBA代码输出结果异常求助

交叉复制两行有值一行空的数据(VBA修正方案)

原代码未匹配“两行有值、一行空行”的分组规律,导致复制逻辑错误。以下是修正后的代码,完全匹配你的数据排列需求:

Sub Copy_by_crossing()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long
    
    Set ws = ThisWorkbook.ActiveSheet
    lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    
    ' 按3行一组循环(数据行1、数据行2、空行)
    For i = 2 To lastRow Step 3
        ' 把第i+1行的A-D复制到第i行的E-H
        ws.Range("E" & i).Resize(, 4).Value = ws.Range("A" & i + 1, "D" & i + 1).Value
        ' 把第i行的A-D复制到第i+2行的E-H
        ws.Range("E" & i + 2).Resize(, 4).Value = ws.Range("A" & i, "D" & i).Value
    Next i
End Sub

关键说明

  • 用Step 3实现每3行一组的循环,精准匹配“两行数据+一行空行”的结构
  • 明确指定源范围和目标范围,避免原代码中依赖E列空值判断的不确定性
  • 循环起始从行2开始(对应你的数据起始行),自动处理所有符合规律的分组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:45:38