我对VBA还是很陌生,所以这可能有点基础。我有一个宏,可从工作表“工作表”中复制一定范围的单元格,并将其粘贴到工作表“ FCTC”中的活动行中。宏还会插入新行,因此新粘贴的信息不会覆盖任何现有数据。我认为我的问题是将范围复制到活动单元格参考粘贴,但是我不确定。我已经在下面发布了代码。任何帮助将不胜感激。
`Private Sub CommandButton1_Click()
Application.Goto ActiveWorkbook.Sheets("Working Sheet").Range("A1:AQ7")
Selection.Copy
Sheets("FCTC").Select
ActiveCell.Offset(0, 7).EntireRow.Insert
ActiveCell.Paste
End Sub
宏实际上可以工作并插入所需的数据,并根据需要向下移动行。但是我得到了
运行时错误1004“ Range类的PasteSpecial方法失败”
结构显然有问题,但我无法解决。
答案 0 :(得分:0)
.Select
或.Activate
(How to avoid using Select in Excel VBA)。PasteBeforeHere
。因此,用户无需手动选择此单元格。如果您使用命名范围,则可以通过Range("PasteBeforeHere")
轻松访问单元格。类似以下的方法应该起作用:
Option Explicit
Private Sub CommandButton1_Click()
Dim Source As Range
Set Source = ThisWorkbook.Worksheets("Working Sheet").Range("A1:AQ7")
Dim InsertBefore As Range
Set InsertBefore = Selection 'better ThisWorkbook.Worksheets("FCTC").Range("PasteBeforeHere")
Set InsertBefore = ThisWorkbook.Worksheets("FCTC").Range("PasteBeforeHere")
'insert empty rows (same amount as source has)
Application.CutCopyMode = False
InsertBefore.Resize(RowSize:=Source.Rows.Count).EntireRow.Insert
'copy from source to destination
Source.Copy Destination:=InsertBefore.Offset(RowOffset:=-Source.Rows.Count)
End Sub