2017-07-26 262 views
0

我有此代碼打開第一個工作簿,第二個工作簿,複製第一個工作簿的範圍並將其粘貼到第二個工作簿中。我想讓它在第二個工作簿中的粘貼範圍之後選擇單元格,但它選擇粘貼的範圍+它後面的行,而我只需要在列A中選擇第一個空閒單元格。Excel vba選擇所選範圍的最後一行的單元格

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("List").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 

     'GET THE LAST RANGE 
     Dim nextRange As Range 
     Set nextRange = resultWorkbook.Worksheets("1").Range("A3:F3", _ 
     resultWorkbook.Worksheets("1").Range("A3").End(xlDown)).Offset(1, 0) 
     nextRange.Select 
End Sub 

我該怎麼做?我想它仍然與xlDown有關,但無法弄清楚什麼。

+2

爲什麼要添加一小時前開啓的帖子的準確重複?我給你一個答案在這裏:https://stackoverflow.com/questions/45324117/object-required-error-when-trying-to-get-endxldown-1-row –

+4

可能重複[對象所需的錯誤,當試圖得到結束(xlDown)+ 1行](https://stackoverflow.com/questions/45324117/object-required-error-when-trying-to-get-endxldown-1-row) –

+0

@ShaiRado其實,這似乎更多像一個後續問題。他似乎在使用'xlDown',但需要電子表格技巧底部的標準'xlUp'。 –

回答

0
Set nextRange = resultWorkbook.Worksheets("1").Range("A3:F3", _ 
     resultWorkbook.Worksheets("1").Range("A3").End(xlDown)).Offset(1, 0) 
    Set nextRange = resultWorkbook.Worksheets("1").Cells(nextRange.Rows.Count + 3, 1) 

解決了這個問題對我來說(我有沒有包括在本次評選3點上的行,所以要謹慎使用確切的數字爲您的案件)。

+2

'Set nextRange = nextRange.Cells(nextRange.Rows.Count,1)'更健壯,因爲如果稍後決定添加或刪除標題行,它將不會失敗。像「3」這樣的魔術數字有點像紅旗。 –

+0

@John Coleman,謝謝,但現在我所有的文件在結構上都非常相似,所以我現在使用這些數字,因爲我很擔心可能會失敗的代碼中添加任何新因素(如函數)或給錯誤。我希望未來的讀者能知道用他們的數字取代我的數字。 – Ans

相關問題