2017-08-07 81 views
-1

我可以在替代哪些:计数细胞动态宏观

Set Rng = Sheets("Annual SnD Raw Data").Range("J2:J89500") 

为了Rng是范围J2最后的二手电池在J列?

我想:

Sheets("Annual SnD Raw Data").Range(Cells(2, 10), Cells(2, Application.WorksheetFunction.CountA("J:J"))) 

但它并没有设置正确的范围内。

+1

等待 - 你想'Rng'是一个单细胞,或'J2'通过在列的最后一个单元格使用范围? – BruceWayne

+0

范围。编辑。 –

回答

5
With Sheets("Annual SnD Raw Data") 
    Set Rng = .Range(.Cells(2,10),.Cells(.Rows.Count,10).End(xlUp)) 
End With 
+0

不知道VBA是如何工作的,但这个答案适用于我,其他答案没有(几乎可以肯定是因为我的问题存在一些模糊性)。如果你能解释这些差异?如果不是谢谢你的答案! –

+1

@布鲁斯的回答只会选择最后一个单元,我的选择整个范围。他误解了你所问的。如果您不明白'With With Sheets(“年度SnD原始数据)”,请在Google上查找'With Block VBA'。有很多网站解释如何以及为什么应该使用它。它基本上是一个捷径,所以我不需要写出3次。 –

+2

@RafaelMartins布鲁斯的答案是为回应原始问题而写的,其中说:“为了让Rng成为J栏中最后使用的单元格”。 – YowE3K

3

您可以使用.End(xlUp)

Set Rng = Sheets("Annual SnD Raw Data").Range("J" & Rows.Count).End(xlUp) 
+2

我们中的一个是正确的。 –

+0

@ScottCraner - 我追求速度,为了彻底:P – BruceWayne