引用范围



我有这样的代码:

Range("A10" , "A" & Cells(Rows.Count, 1).End(xlUp).Row) 

有人能向我解释一下它到底是怎么工作的吗?为什么我们把"A"Cells(Rows.Count, 1)连接起来?这个范围是多少"A";,(1048576,1)-这对我来说没有意义

所以这行的想法是"找出从‘A10’开始直到列A"中最后一个非空白单元格的范围;,这将是类似于";A10:A50〃;,如果";A50〃;是最后一个细胞。

那么你是如何找到这个范围的呢?有很多像Worksheet.UsedRangeRange.CurrentRegion这样的工具。但这些可能是不可靠的,因为它们会受到列"之外的事物的影响;A";并且不会像特别搜索列A中的最后一个单元格那样直接。

这就是为什么您经常看到VBA编码器使用Range.End的原因。因此,从";A10";,我们可以做CCD_ 6,但如果在"0"one_answers"0"之间有任何空白单元格;A10";以及最后一个单元格。因为End在非空白单元格上开始时停止在下一个空白单元格,或者在空白单元格上启动时停止在上一个非空白单元格。

因此,为了找到列"中的最后一个单元格;A";保证,在没有其他因素阻碍您或导致范围错误的情况下,您希望从页面底部开始,向上移动以找到最低的非空白单元格

由于VBA具有如此灵活的对象,所以有很多方法可以编写同一行。

Cells(Rows.Count, "A").End(xlUp)

Columns(1).Rows(Rows.Count).End(xlUp)

Range("A:A").Cells(Rows.Count).End(xlUp)

Rows(Rows.Count).Cells(1).End(xlUp)

一旦你有了最后一个单元格,你只需要创建一个从";A10";到最后一个单元格。你可以用CCD_ 12快速完成这一点,其中CCD_;A10";并且CCD_ 14是最后一个小区。

行以迂回的方式找到最后一个单元格的行#,然后将其附加到"上;A";,创建一个字符串参数;A50";。它可能只使用最后一个单元格作为范围对象的参数。

Range("A10" , Cells(Rows.Count, 1).End(xlUp))

最新更新