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

修改VBA代码实现复制带VLOOKUP公式的列并每隔3列粘贴

修改VBA代码实现公式复制而非仅粘贴值

原代码通过.Value属性赋值,只会复制单元格的计算结果,而非公式本身。要保留B列的VLOOKUP公式并粘贴到目标列,只需将赋值语句替换为对应公式属性即可:

修改后的代码(A1样式公式)

Sub Sco__copy()
    Dim cpval As Range
    Dim LastRow As Long

    With Worksheets("Sheet8")
        LastRow = .Cells(Rows.Count, "B:B").End(xlUp).Row
        Set cpval = .Range("B12:B" & LastRow)

        For colx = 2 To 40 Step 3
            ' 替换为Formula属性,复制单元格的A1样式公式
            .Range(.Cells(12, colx), .Cells(LastRow, colx)).Formula = cpval.Formula
        Next
    End With
End Sub

补充说明

  • 若你的VLOOKUP使用相对引用,粘贴到其他列后,公式中的单元格引用会自动适配目标列位置(例如B列公式=VLOOKUP(A1, Data,2,0)粘贴到E列时,会自动变为=VLOOKUP(D1, Data,2,0)),上述代码完全适用。
  • 若需要保留固定引用(如绝对引用),或习惯使用R1C1样式公式,可改用.FormulaR1C1属性,修改对应行代码为:
    .Range(.Cells(12, colx), .Cells(LastRow, colx)).FormulaR1C1 = cpval.FormulaR1C1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:35:03