m0_72797786 2024-03-15 10:05 采纳率: 0%
浏览 16
已结题

VBA PasteSpecial 函数怎么写


Sub test()
    Dim sheet物料流水表 As Worksheet
    Set sheet物料流水表 = Workbooks("物料表系统.xlsm").Worksheets("物料流水")
    If sheet物料流水表 Is Nothing Then
        MsgBox "获取物料流水表句柄失败!"
    End If
    
    With sheet物料流水表
        .Range("d12:EF12").Copy
        .Range("d13:EF13").PasteSpecial(xlPasteFormulas, xlPasteSpecialOperationNone ,True,False)  '此处语法无法通过,没发现语法错误,
    End With
    
End Sub

帮忙看下,PasteSpecial 函数要怎么修改

img

  • 写回答

25条回答

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-15 10:06
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    在你的VBA代码中,.Range("d13:EF13").PasteSpecial 函数的语法是正确的,但是xlPasteSpecialOperationNone参数在这个上下文中可能不是必须的,因为你要粘贴的是公式。当你只需要粘贴公式时,可以简化 .PasteSpecial 的调用方式如下:

    Sub test()
        Dim sheet物料流水表 As Worksheet
        Set sheet物料流水表 = Workbooks("物料表系统.xlsm").Worksheets("物料流水")
        
        If sheet物料流水表 Is Nothing Then
            MsgBox "获取物料流水表句柄失败!"
            Exit Sub ' 在找不到工作表时退出子程序
        End If
        
        With sheet物料流水表
            .Range("d12:EF12").Copy
            .Range("d13:EF13").PasteSpecial xlPasteFormulas ' 只保留 xlPasteFormulas 参数即可
        End With
    End Sub
    

    这里删除了 xlPasteSpecialOperationNoneTrueFalse 这些参数,因为在仅粘贴公式的情况下,它们并不是必需的。xlPasteFormulas 参数就足以指示 VBA 仅粘贴复制区域中的公式而不包括任何格式或其他内容。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题