2017-07-26 35 views
0

我有打开第一个工作簿的第二个工作簿的代码,从第一个工作簿复制范围并将其粘贴到第二个工作簿中。我想让它在第二个工作簿中的粘贴范围之后选择单元格,但它失败并出现Object required错误。试图获取End(xlDown)+ 1行时所需的对象错误

Sub tes() 
     '**VARIABLES** 
     Dim folderPath As String 
     folderPath = "Y:\plan_graphs\final\mich_alco_test\files\" 
     Dim fileTitle As String 
     fileTitle = "5.xlsx" 

     Dim dataWorkbook As Workbook 
     Set dataWorkbook = Application.Workbooks.Open(folderPath & fileTitle) 

     Dim copyRange As Range 
     Set copyRange = dataWorkbook.Worksheets("List1").Range("A3:F3", Range("A3").End(xlDown)) 


     Dim resultWorkbook As Workbook 
     Set resultWorkbook = Application.Workbooks.Open("Y:\plan_graphs\final\mich_alco_test\result.xlsx") 

     copyRange.Copy 
     resultWorkbook.Worksheets("1").Range("A3").PasteSpecial Paste:=xlPasteFormulas 

     Dim nextRange As Range 
     Set nextRange = resultWorkbook.Worksheets("1").Range("A3:F3", _ 
     resultWorkbook.Worksheets("1").Range("A3").End(xlDown)).Offset(1, 0).Select 

End Sub 

我在做什么错?

+0

您需要先'设置nextRange'没有'.Select',然后用'nextRange选择.Select' –

+0

你的工作表叫做'1'还是你想要第一张工作表? –

+0

除了别人说过的话(在同一行中设置和选择)。如果'A4'向下是空的,这将返回'$ A $ 3:$ F $ 1048576',然后尝试向下移动表格底部的一行以产生错误。正如你在另一个问题中所说的那样 - 看起来我的所有文件在A列中都没有空单元格,所以一切都应该是好的......直到你到达一个不符合规则的文件。 –

回答

3

不能Set在同一行的范围和Select它,试试下面的代码段:

copyRange.Copy 

With resultWorkbook.Worksheets("1") 
    .Range("A3").PasteSpecial Paste:=xlPasteFormulas 

    Dim nextRange As Range 
    Set nextRange = .Range("A3").End(xlDown).Offset(1, 0) ' set the Range first 

    nextRange.Select ' <-- select the Range 
End With 

End Sub