【原创】VBA学习笔记(20) range().end() 或 cells().end() 的用法

【原创】VBA学习笔记(20) range().end() 或 cells().end() 的用法,第1张

1 Range().End() 或 cells().End()  属性    1.1 单元格的end属性 两种写法都可以range().end() cells().end()    1.2 返回的内容 返回一个 Range 对象该对象代表包含源区域的区域尾端的单元格。等同于按键 (End+向上键、End+向下键、End+向左键、End+向右键)或等同于CTRL+上下左右 2 使用详解 2.1 详细语法 表达式 一个代表 Range 对象的变量。(用数值1,2,3,4 代表也是可以的)向左 xlToLeft -------1,实际使用时,是以当前range()为基点,先左移一格,然后去找向右 xlToRight -----2,实际使用时,是以当前range()为基点,先右移一格,然后去找向上 xlUp -----------3,实际使用时,是以当前range()为基点,先上移一格,然后去找向下 xlDown -------4,实际使用时,是以当前range()为基点,先下移一格,然后去找

【原创】VBA学习笔记(20) range().end() 或 cells().end() 的用法,第2张

理解先偏移1格再找区域的意思理解从“源区域” 作为起始点,去找这个 源区域相连的使用区域的边界如果源区域 本身为空,会找一个相连的整块空区域

【原创】VBA学习笔记(20) range().end() 或 cells().end() 的用法,第3张

sub test1()'确定的区域,测试单元格1Debug.Print Range('b5').End(xlUp).RowDebug.Print Range('b5').End(xlDown).RowDebug.Print Range('b5').End(xlToLeft).ColumnDebug.Print Range('b5').End(xlToRight).ColumnDebug.Print'确定的区域,测试单元格1Debug.Print Range('b3').End(xlUp).RowDebug.Print Range('b3').End(xlDown).RowDebug.Print Range('b3').End(xlToLeft).ColumnDebug.Print Range('b3').End(xlToRight).ColumnDebug.Printend sub
2.2 测试比较 查固定range()的范围查固定range(),但range()内全部为空查不确定的区域的范围
Sub test_end1()Debug.Print Range('b:b').Rows.Count'Debug.Print Range('b:b').maxrowCountDebug.Print Range('3:3').Columns.CountDebug.Print'确定的区域,这样查也是有意义的'返回一个 Range 对象,它表示包含源范围的区域末尾的单元格Debug.Print Range('b1:b5').End(xlUp).RowDebug.Print Range('b1:b5').End(xlDown).RowDebug.Print Range('b1:b5').End(xlToLeft).ColumnDebug.Print Range('b1:b5').End(xlToRight).ColumnDebug.Print'空区域Debug.Print Range('d1:d5').End(xlUp).RowDebug.Print Range('d1:d5').End(xlDown).RowDebug.Print Range('d1:d5').End(xlToLeft).ColumnDebug.Print Range('d1:d5').End(xlToRight).ColumnDebug.Print'查不确定的区域Debug.Print Range('b:b').End(xlUp).RowDebug.Print Range('b:b').End(xlDown).RowDebug.Print Range('b:b').End(xlToLeft).ColumnDebug.Print Range('b:b').End(xlToRight).ColumnDebug.Print'查不确定的区域,用处比较大'比如查B列的上下限界。因为中间可能有空格隔断,所以得这么查Debug.Print '查B列的上下限界,从列的开始往下查,从列的末尾往上查'Debug.Print Range('b1').End(xlDown).RowDebug.Print Range('b65536').End(xlUp).Row'比如查3行的左右限界。因为中间可能有空格隔断,所以得这么查Debug.Print '查第3行的左右限界,从行的开始往右查,从行的结尾(尽量大的数)往左边查'Debug.Print Range('a3').End(xlToRight).ColumnDebug.Print Cells(3, 9999).End(xlToLeft).ColumnEnd Sub
2.3 查不确定区域的范围的正确用法(不是从内部查边界,而是从4个外界去逼近边界)
'查不确定的区域,用处比较大'比如查B列的上下限界。因为中间可能有空格隔断,所以得这么查Debug.Print '查B列的上下限界,从列的开始往下查,从列的末尾往上查'Debug.Print Range('b1').End(xlDown).RowDebug.Print Range('b65536').End(xlUp).Row'比如查3行的左右限界。因为中间可能有空格隔断,所以得这么查Debug.Print '查第3行的左右限界,从行的开始往右查,从行的结尾(尽量大的数)往左边查'Debug.Print Range('a3').End(xlToRight).ColumnDebug.Print Cells(3, 9999).End(xlToLeft).Column
3 总结 3.1 利用end() 查内部的边界 查一个连续区域内的边界,在区域内,用这些即可end(xlup) end(xldown) end(xltoleft) end(xltorigjt) 查一个连续区域内部 3.2 利用end() 查外部的边界(比如查某列最后一个非空单元格) 从外部逼近单元格,需要从  大的行列反过来逼近Range('a65536').End(xlUp)适合查整个sheet的某一列的最后一个有值得单元格。
本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 【原创】VBA学习笔记(20) range().end() 或 cells().end() 的用法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情