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

VBA粘贴至新工作表宏报错:参数数量错误或属性赋值无效

VBA代码编译错误修复方案

错误原因

编译报错wrong number of arguments or invalid property assignment的核心问题在于**Range.Copy方法的语法使用错误**:

  • Copy方法若指定Destination参数,只能传递目标区域,无法同时附加粘贴类型参数(如xlPasteValues);
  • 要实现仅粘贴值的需求,需拆分复制与粘贴操作,使用PasteSpecial方法指定粘贴类型。

修正后的完整代码

Sub PasteContent()
    ' 源工作表名称:"PasteHere"
    Dim sourceSheet As Worksheet
    Set sourceSheet = ThisWorkbook.Sheets("PasteHere")

    ' 创建新工作表并命名为"Results",放在源工作表之前
    Dim destinationSheet As Worksheet
    Set destinationSheet = Worksheets.Add(Before:=sourceSheet)
    destinationSheet.Name = "Results"

    ' 复制源表C:E列的值到新表A:C列
    sourceSheet.Range("C:E").Copy
    destinationSheet.Range("A:C").PasteSpecial Paste:=xlPasteValues
    ' 清除剪贴板状态,避免弹窗提示
    Application.CutCopyMode = False

    ' 按新表A列(原C列)升序排序,包含表头
    destinationSheet.Range("A:C").Sort Key1:=destinationSheet.Range("A:A"), Order1:=xlAscending, Header:=xlYes
End Sub

关键修改点说明

  • 将原错误的Copy合并调用拆分为两步:先执行Copy复制源区域,再用PasteSpecial Paste:=xlPasteValues指定仅粘贴值;
  • 添加Application.CutCopyMode = False,清除剪贴板的复制状态,避免Excel弹出"是否保留剪贴板内容"的提示;
  • 确认源工作表名称为"PasteHere"(代码中与注释一致,若实际工作表名是"Paste Here"(带空格),需修改Sheets("PasteHere")为Sheets("Paste Here"))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:19:56