Excel vba选择所选范围的最后一行的单元格
我有此代码打开第一个工作簿,第二个工作簿,复制第一个工作簿的范围并将其粘贴到第二个工作簿中。我想让它在第二个工作簿中的粘贴范围之后选择单元格,但它选择粘贴的范围+它后面的行,而我只需要在列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
有关,但无法弄清楚什么。
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点上的行,所以要谨慎使用确切的数字为您的案件)。
'Set nextRange = nextRange.Cells(nextRange.Rows.Count,1)'更健壮,因为如果稍后决定添加或删除标题行,它将不会失败。像“3”这样的魔术数字有点像红旗。 –
@John Coleman,谢谢,但现在我所有的文件在结构上都非常相似,所以我现在使用这些数字,因为我很担心可能会失败的代码中添加任何新因素(如函数)或给错误。我希望未来的读者能知道用他们的数字取代我的数字。 – Ans
为什么要添加一小时前开启的帖子的准确重复?我给你一个答案在这里:https://stackoverflow.com/questions/45324117/object-required-error-when-trying-to-get-endxldown-1-row –
可能重复[对象所需的错误,当试图得到结束(xlDown)+ 1行](https://stackoverflow.com/questions/45324117/object-required-error-when-trying-to-get-endxldown-1-row) –
@ShaiRado其实,这似乎更多像一个后续问题。他似乎在使用'xlDown',但需要电子表格技巧底部的标准'xlUp'。 –