VBA入门教程:获得数据区的最大行最大列

2021年8月11日20:50:13VBA入门教程:获得数据区的最大行最大列已关闭评论 65 views
微信公众号 【EXCEL880】 QQ群【165159540】
课程咨询 加我微信EXCEL880B试学网址http://v.excel880.com

​●  本技巧的目的:定位到指定行或者列中的最后一个非空单元格。

●  这个技巧非常重要,在 Excel 操作中是否经常会遇到这样的情景,需要把单元格快速移动到本行或者本列的最后一个有数据的单元格呢?在VBA 中这个代码也是非常重要的,他能够让我们实现表格数据的动态获取,而不需要输入一个固定的地址。

●  首先看一下在 Excel 中是如何操作的:

●  现在的单元格地址在  A2

●  在 Excel 中快速移动到 A15 的方法:Ctrl + ↓ (数字键盘的下方向键)。

●  同理,用Ctrl +  ↑ ↓ ← → (数字键盘各方向键) 可以实现各个方向的快速移动到最后单元格的目的。

●  ★★★  注意:在Excel 中用 Ctrl + 方向键  是移动到连续的最后有数据的单元格。与VBA 不同!!!

●   如下图,最后单元格是 H1  和  A15

●  1. 代码助手神键手实现快速输入

只要输入中文  最大行+ 空格,就会自动弹出选项,再也不用记长长的代码了多方便。

●  2. 单元格最大行数,最大列数

最大行:Sheet1.Rows.Count

注释:

1) Sheet1 工作表 所有行的数量

2) 还有个更简单的方法:当然用Rows.count 也是可以的

① Excel2010 以上版本最大行是 1048576 行, 但是还是可以使用 65536,60000 行这个数值。

② Excel2003 中最大行是 65536 行,所以我们可以写成  [A65536] 甚至是 [A60000]

最大列:ActiveSheet.Columns.Count

注释:活动单元格的最大列

●  3. 参数

●  4. VBA 与 EXCEL 操作的原理不同:

   ★★★  注意:VBA 是:先移动到最后的位置,然后再返回,所以是返回到真正的最后一行!!!

●  5. 快速定位到:一列中的最后一行单元格

 

书写方法:Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp)

注释:

1) 格式:A列最大行.End(xlup),注:可以是A列,可以是B列,C列,任意列

2)定位到最大行后,再向上移动到最后一行数据所在的单元格

3)调试语句:  Debug.print rng.address  '在立即窗口打印出 rng 的地址:$A$18

●  6. 快速定位到:一行中的最后一列单元格

书写方法:Sheet1.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft)

注释:

1) 格式:第一行最大列.End(xlToLeft),注:可以是第1行,第2行,任意行

2) 定位到最大列后,再向左移动到最后一列数据所在的单元格

3) 调试语句: 

   Debug.Printrng.Address  '打印地址

   Debug.Printrng.Column  '打印数字列号

   Debug.Print "最后非空单元格地址为:" & rng.Address & "列号:"& rng.Column _

      & "行号:" & rng.Row & "数值:"& rng.Value

  在立即窗口打印出: 

  $K$1

  11

  最后非空单元格地址为:$K$1列号:11行号:1数值:123

●  7. Address, 后面加参数,代表:是否绝对引用

1)Sheet1.Range("A3").Address(0,1)   代表:  $A3  列绝对引用, 行相对引用

2)Sheet1.Range("A3").Address(1,0)   代表:  A$3  列相对引用, 行绝对引用

3)Sheet1.Range("A3").Address(1,1) 和  Sheet1.Range("A3").Address

都是代表:  $A$3   行列均绝对引用

4)Sheet1.Range("A3").Address(0,0)  代表:  A3   行列都是相对引用

●  更多作品请百度搜索 郑广学

●  VBA代码助手 懒人神器 在 EXCEL880.COM官网下载