我正在尝试将范围从sheet1的特定单元格复制到sheet2中的特定单元格。
但是,当我仅使用.PasteSpecial数据时,就会被覆盖。这是因为sheet1的范围并不总是相同的大小,并且可能导致它覆盖sheet2上的数据。我想将工作表1中的数据粘贴到工作表2上,但是如果工作表1上的范围大于工作表2上的范围,则必须先在工作表2上插入行,这样它才不会覆盖其他数据。
以下是我尝试过的一些示例代码(我在VBA中没有经验,所以请您输入任何奇怪的代码):
Sub ResizeNamedRange()
Dim xWb As Workbook
Dim xNameString As String
Dim xName As Name
Dim row_count As Integer
Set xWb = Application.ActiveWorkbook
xNameString = "Destination_A"
Set xName = xWb.Names.Item(xNameString)
Set row_count = xWb.Names.Item(xNameString).Rows.Count
If row_count <= 1 Then
Sheets("Hours").range("A9:E14").PasteSpecial xlPasteValues
End If
End Sub
但是,我不断收到诸如Object required
之类的错误。有谁知道如何做到这一点?我感谢我能获得的所有帮助!
答案 0 :(得分:0)
两个初始提示-仅在将值分配给变量或属性时使用Set
语句。参见:
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/set-statement
此外,您不能在Rows.Count
上使用Names.Item
。相反,您可以将其替换为:
xNameString = "Destination_A"
Set xName = xWb.Names.Item(xNameString)
row_count = Range(xName.RefersTo).Rows.Count