第48讲 第49讲--动态定位单元格区域1-End属性、动态定位单元格区域2、3-Currentregion UsedRange

2023-11-19

1 单元格区域.
EntireRow返回该区域所在的整行对象单元格区域.
EntireColumn返回该区域所在的整列

'返回单元格所在的整行与整列,返回单元格对象
'EntireRow 与EntireColumn
Sub 整行与整列()
'    Range("a1").EntireColumn = 0
    Range("a1").EntireRow.Select
End Sub

2 单元格区域.Select方法,选中某区域。多见于演示
3 动态定位单元格对象区域(一)
单元格.End :
End属性返回单元格区域的边界单元格,从起始单元格出发可以分别向上下左右四个方向进行边界定位。
推荐使用End(xlup)向上,End(xldown)向下,End(xltoleft)向左,End(xltoright)向右这些参数而不要用1,2,3,4这些数字。
使用End定位边界时,往往倒着找的道理。

'单元格的边界定位属性
'End 属性的四个方向,从某一位置单元格出发,向四个方向寻找边界, 返回的是一个边界单元格对象
'从A1 出发向下寻找最后的边界单元格
'End 面临的问题 有空记录定位错误的问题
'倒着找,从最后一行向上倒着找,找到第一个有数据的单元格,一定是包含数据的最后一个边界单元格

Sub End演示1()
    Debug.Print Range("a1").End(xlDown).Row
End Sub

Sub End演示2()
    Debug.Print Range("a" & Rows.Count).End(xlUp).Row
End Sub

'End 一些不良用法:
'Range(“a65536”).end(3).row '有两点不好的传承
'65536 是Excel2003 或以前的行数限制,一旦你的数据超过65536行,边界定位代码就是错误的
'1048576 和65536 犯了同样的错误,如果你的代码移植到2003 或以前的Excel 上就会出问题
'Rows.Count 动态获取最后的行
'xlup 通俗易懂,非要写成3 造成程序的可读性下降。
'xltoleft,xltoright,xlup,xldown

4 动态定位单元格区域(二)
返回单元格所在的连续单元格区域:CurrentRegion属性
·相当于Excel中选定某单元格按ctrl+a的效果,返回一片连续的单元格区域对象·该区域的所有行数单元格.
CurrentRegion.rows.count ---- 这个是经常用到的

'CurrentRegion 属性返回单元格所在的连续区域的对象
'是我们在实际应用中,使用最多的动态定位单元格对象的属性
Sub test()
    Dim area As Range
    Set area = Range("a1").CurrentRegion
    Debug.Print area.Address(0, 0)
    Debug.Print area.Rows.Count
    Debug.Print area.Columns.Count
End Sub
Sub test1()
Dim i As Long
For i = 2 To Range("a2").CurrentRegion.Rows.Count
    [k2] = [k2] + Cells(i, "h")
Next
End Sub

CurrentRegion是我们最常用的动态取单元格区域的方式
·可以简易取到连续单元格区域而不用去考虑某列的空缺,边界单元格获取列等等
·是转换为二维数组来大幅提高程序运行效率的最佳方式
·如果数据表中有空行或者空列,CurrentRegion则无法取到完整的数据区域

5 动态定位单元格区域(三)
UsedRange属性:
·这个属性不是单元格的属性,是工作表的属性。返回工作表中所有数据的区域,如果这些区域不是连续的,这个属性得到的是包含空白的区域将各个数据区域连接起来的结果区域。
如果表格中只有一块数据连续区域存在则与使用urrentregion返回的区域相同。
·并不常用,也并不好用。因为大量空白连接的连续区域并不适合处理,但是有些特殊情况也有用武之地。
·可以通过单元格直接引用(小技巧):单元.parent.UsedRange
Parent 属性返回当前对象从属的对象。Parents是父母的意思,我们也可以理解这个单元格的父母是工作表。虽然不符合面向对象的继承的概念,不过反正VBA也不支持继承。

Sub UsedRange属性()
    Dim area As Range
'    Set area = Sheet1.UsedRange '是Sheet1 这个工作表的属性
'    parent 一个单元格的parent 属性返回该单元格所在的工作表
     Set area = Range("a1").Parent.UsedRange
    Debug.Print area.Address(0, 0)
    area.Select
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第48讲 第49讲--动态定位单元格区域1-End属性、动态定位单元格区域2、3-Currentregion UsedRange 的相关文章

随机推荐

  • Angular2 之 单元测试

    单元测试需要掌握的知识点 karma conf js的配置 具体了解到每一项的意义 这样才能真正的了解这个配置是如何配置的 甚至才可以做到自己的配置 组件的测试 单独的service测试 Angular的测试工具 Angular的测试工具类
  • 飞机大战(C语言版)

    大一下要交课程设计 于是就用C语言写了一个飞机大战小游戏 没有用到第三方库 飞机和子弹的移动使用的光标移动函数 所以没有卡顿 其中w s a d分别表示上下左右 包括大写 空格发射子弹 游戏结束后可选择是否储存游戏数据 该程序复制后可直接使
  • git push错误: failed to push some refs to

    原因 当你在git上对它进行了在线修改 但是没有对本地库进行同步 这个时候你再次commit 想把本地库提交到远程git库中 就会出现push失败问题 简单来说 就是远程与本地存在不一致的commit情形 解决方法 确保远程代码没问题的情况
  • 【Java SE】抽象类和接口

    点进来你就是我的人了博主主页 戳一戳 欢迎大佬指点 欢迎志同道合的朋友一起加油喔 目录 前言 一 抽象类 1 抽象类的概述 2 抽象类特点 3 抽象关键字abstract和哪些不可以共存 4 抽象类的细节 5 抽象类的作用 二 接口 1 什
  • 统计学习方法论概念

    1 统计学习包含监督学习 非监督学习 半监督学习和强化学习 2 监督学习 监督学习的任务是学习一个模型 使模型能够根据任意给定的输入 对模型的输出做出一个好的预测 监督学习分为学习和预测两个过程 由学习系统和预测系统组成 3 损失函数和风险
  • 【C++】迭代器 && vector中迭代器失效

    文章目录 1 什么是迭代器 2 迭代器与指针 3 迭代器的分类 3 1具体分类 3 2为什么要对迭代器分类 3 3迭代器的使用建议 4 vector迭代器失效 4 1迭代器失效及其危害 4 2哪些操作会导致迭代器失效 如何解决 1 什么是迭
  • 视觉SLAM十四讲笔记-6-3

    视觉SLAM十四讲笔记 6 3 文章目录 视觉SLAM十四讲笔记 6 3 6 3 实践 曲线拟合问题 6 3 1 手写高斯牛顿法 6 3 2 使用Ceres进行曲线拟合 Ceres 简介 安装Ceres 使用Ceres拟合曲线 6 3 3
  • JAVA往map添加元素_java list map在初始化的时候添加元素

    List list new ArrayList add First Object add Second Object add Third Object Map map new HashMap put First Key First Valu
  • 初始OAuth2.0

    1 什么是OAuth2 0 OAuth2 0 是目前使用非常广泛的授权机制 用于授权第三方应用获取用户的数据 举例说明 用户可以通过选择其他登录方式来使用gitee 这里就使用到了第三方认证 OAuth 引入了一个授权层 用来分离两种不同的
  • vue 修改标题名字

    1 直接修改 在main js中添加 document title 大屏控制 2 根据路由动态改变 https www cnblogs com CinderellaStory p 10858035 html
  • iPhone苹果15手机怎么看是国行还是美版或港版的苹果iPhone15手机?

    iPhone苹果手机15机型区域版本识别代码 CH代码为国行 LL代码为美版 ZP代码为港版 iPhone苹果15手机怎么看是国行还是美版或港版的苹果iPhone15手机 1 打开苹果iPhone15手机桌面上的 设置 2 在iPhone苹
  • OWASP ZAP安装遇到Error.A JNI error has occurred ,please check your installation and try again

    问题描述 我当时下载的是兼容版本 下载完成后双击zap bat发现运行一下就闪退 然后运行jar文件就报错 过程 最开始以为是java环境的问题 后面用java version去运行了一下 发现java环境是正常的 但又一直提示java的问
  • 4大技术亮点支撑应用优势 全新一代旗舰型行业无人机千巡翼X4发布

    随着无人机与数字成像技术的发展 无人机航测成为了重要的地理信息采集手段 也越来越受重视 据相关研报数据统计 预计2025年我国实景三维在自然资源领域的 以数据采集 处理为主的直接市场规模预计将达40亿元 推测2025年关联市场规模将达400
  • MFC设置控件文本字体、大小、颜色、背景

    1 修改字体 大小 声明一个CFont类型的类成员变量 CFont m editFont 然后在类的初始化函数OnInitDialog 中添加以下两行代码 设置静态文本字体大小 m editFont CreatePointFont 180
  • MFC编程实验(三):组件(列表框元素的增删)

    一 实验要求 创建一个对话框应用程序 实现如下布局 完成如下功能 1 初始状态 列表中有4个元素 2 可以在编辑框中输入新朋友的名字 点击 添加 按钮添加到列表框 同时清空编辑框中的名字 3 选中列表框中的一个名字 点击 删除 按钮可以删除
  • GDB 简略手册

    杂项 命令 用法 说明 h elp help 显示可用帮助文档 h CMD 显示关于指定命令的帮助 apr opos apr REGEXP 使用正则表达式搜索命令 i nfo info 显示可展示的信息 ENTER 无命令回车 重复执行上一
  • 接口测试总结

    第一部分 主要从问题出发 引入接口测试的相关内容并与前端测试进行简单对比 总结两者之前的区别与联系 但该部分只交代了怎么做和如何做 并没有解释为什么要做 第二部分 主要介绍为什么要做接口测试 并简单总结接口持续集成和接口质量评估相关内容 第
  • 手写系列之--call/apply/bind/防抖/节流

    call call 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数 语法 function call thisArg arg1 arg2 JavaScript中由于函数的this指向它的直接调用者 我们变更调用者即
  • 1668 最大重复子字符串

    题目描述 给你一个字符串 sequence 如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串 那么单词 word 的 重复值为 k 单词 word 的 最大重复值 是单词 word 在 sequence
  • 第48讲 第49讲--动态定位单元格区域1-End属性、动态定位单元格区域2、3-Currentregion UsedRange

    1 单元格区域 EntireRow返回该区域所在的整行对象单元格区域 EntireColumn返回该区域所在的整列 返回单元格所在的整行与整列 返回单元格对象 EntireRow 与EntireColumn Sub 整行与整列 Range