Excel VBA:.Range&Cells(row.count xlup
我想了解以下行:
.Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).ClearContents
有人可以告诉什么。 范围(“A1:A”&手段?
从我的研究到目前为止,我发现了以下几点:
- 细胞是指细胞
- .Rows.Count是一个函数,返回表中的行数(= 65536)
- ,“A”是指你想要search的列(这里是A)
- .End告诉EXCEL从哪里开始
- xlUp EXCEL应该search的方向
- 从底部开始的第一个单元格不是空的
- .ClearContents删除所有值
有人可以告诉我们这是否正确吗?总体来说,整个行程是怎么做的?
假设稍后可能会将值添加到列A,但我只想删除6个单元格的内容(A50:A55),我将如何更改此?
.Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).ClearContents
打破了这条线(你们大部分都是对的):
-
首先要注意的是
.
在许多属性/方法的开始。 这告诉我们代码必须在With
块内,可能与With Worksheets("Sheet1")
或类似的一样。 所以一切都以一个开始.
只是说Worksheets("Sheet1").
的快捷方式Worksheets("Sheet1").
。 -
.Rows
返回工作表中的所有Rows
,因此.Rows.Count
是有多less行的计数。 在较早版本的Excel中,它是65536,在较新的版本中是1,048,576。 -
.Cells(.Rows.Count, "A")
返回引用列A中最后一个单元格的对象,例如位于$ A $ 65536的单元格 -
.End(xlUp)
表示从该单元格开始向上find先前的非空单元格。 (如果单元$ 65536不是空的,它会做一些不同的事情,但是我会掩饰这一点。) -
然后find那个非空单元格的行号。 为了这个解释,让我们假装是单元$ A $ 5201所以
.Cells(.Rows.Count, "A").End(xlUp).Row
将返回5201
-
"A1:A" & 5201
将"A1:A"
与"5201"
(从数字到string的隐式types转换)连接以生成string"A1:A5201"
-
Range("A1:A5201").ClearContents
将清除单元格A1:A5201