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

Excel VBA 如何用Paste Special实现无公式但保留超链接的粘贴

你可以通过分两次粘贴的方式实现需求:先粘贴纯值清除公式,再单独粘贴指定列的超链接,无需保留其他格式,具体调整方案如下:

错误点说明

你原代码里的ActiveSheet.PasteSpecial Format:=3, Link:=True参数是创建指向源工作表的关联链接,不是保留单元格本身自带的外部文档超链接,不符合需求。

调整后的完整代码

Sub Button3_Click()
    Dim a As Long, b As Long, i As Long
    ' 这里修改为你实际存放超链接的列号,比如超链接在D列就填4
    Const HYPERLINK_COLUMN As Integer = 4
    
    a = Worksheets("Target List").Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To a
        If Worksheets("Target List").Cells(i, 17).Value = "Yes" Then
            b = Worksheets("Completed List").Cells(Rows.Count, 1).End(xlUp).Row
            
            ' 第一步:粘贴纯值,清除公式和所有格式
            Worksheets("Target List").Rows(i).Copy
            Worksheets("Completed List").Cells(b + 1, 1).PasteSpecial Paste:=xlPasteValues
            
            ' 第二步:单独粘贴超链接列的超链接属性
            Worksheets("Target List").Cells(i, HYPERLINK_COLUMN).Copy
            Worksheets("Completed List").Cells(b + 1, HYPERLINK_COLUMN).PasteSpecial Paste:=xlPasteAllExceptBorders
            
            Worksheets("Target List").Activate
        End If
    Next
    
    Application.CutCopyMode = False
    ThisWorkbook.Worksheets("Target List").Cells(1, 1).Select
    ActiveSheet.Range("Q8:R" & Range("Q8").End(xlDown).Row).ClearContents
End Sub

参数说明

  • xlPasteValues:仅粘贴单元格计算后的结果,自动忽略公式和所有格式
  • xlPasteAllExceptBorders:粘贴超链接属性的同时不会带入原表格的边框等格式,如果你完全不需要任何额外格式也可以替换为xlPasteLinks,可根据实际效果调整
  • 记得把代码里的HYPERLINK_COLUMN常量改为你实际存放超链接的列序号即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:36:03