VBA 粘贴到新工作表宏中 - 获取“参数数量错误或属性分配无效”

问题描述 投票:0回答:1

我正在尝试在 VBA 中运行此代码:

Sub PasteContent()

    ' My sheet is called "PasteHere" 

    Dim sourceSheet As Worksheet
    Set sourceSheet = ThisWorkbook.Sheets("PasteHere")

    ' I need it to create a new worksheet and call it "Results"

    Dim destinationSheet As Worksheet
    Set destinationSheet = Worksheets.Add(Before:=sourceSheet)
    destinationSheet.Name = "Results"

    ' Paste the values of columns C, D and E from the sheet "Paste Here" into the new sheet "Results"

    sourceSheet.Range("C:E").Copy destinationSheet.Range("A:C"), xlPasteValues
    
     ' Sort columns A, B and C by name in column A
    destinationSheet.Range("A:C").Sort Key1:=destinationSheet.Range("A:A"), Order1:=xlAscending, Header:=xlYes

End Sub

编译错误显示“参数数量错误或属性分配无效”,黄色箭头指向“Sub”部分。 我对 VBA 很陌生,非常感谢您的帮助!

excel vba
1个回答
0
投票

黄色箭头指向

Sub PasteContent()
,但
.Copy
已突出显示。

enter image description here

F1 并突出显示

.Copy
可打开此帮助页面:范围.复制方法 (Excel)

语法

表达式.复制(目标)

表达式 代表 Range 对象的变量。

参数

姓名 必填/可选 数据类型 描述
目的地 可选 变体 指定要将指定范围复制到的新范围。如果省略,Excel 会将范围复制到剪贴板。

Range 仅采用一个参数:Destination。

这会起作用:

 sourceSheet.Range("C:E").Copy destinationSheet.Range("A:C")

这将仅复制值。 请注意,我们只需要目的地中的第一个单元格。

 Range("C:E").Copy
 Range("A1").PasteSpecial xlPasteValues

但是在使用值时最好直接进行值分配:

destinationSheet.Range("A:C").Value = sourceSheet.Range("C:E").Value
© www.soinside.com 2019 - 2024. All rights reserved.