我正在尝试在 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 很陌生,非常感谢您的帮助!
黄色箭头指向
Sub PasteContent()
,但 .Copy
已突出显示。
按 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