第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 的相关文章

  • 当存储在集合中时,如何更改类属性的值

    我想将一个类存储在集合中 并且能够更改该类的属性 而不必删除集合项并再次将其添加回来 我的研究表明 如果不进行删除 替换操作 则无法更改项目本身 但是项目的属性又如何呢 下面的代码展示了如何执行此操作 当您运行宏时 调试窗口将显示存储对象的
  • 正在使用的 VBA 监视文件

    我正在寻找一些东西 Win API 调用或其他 来在文件可供编辑 即不再使用 时通知我 我应该设置一个计时器来按一定时间间隔检查文件还是有一个好方法对文件设置监视 FileSystemWatcher 没有帮助 Win32 FindFirst
  • VBA 中的求和函数

    我在 vba 中对单元格求和时遇到问题 我需要使用单元格 a b Range A1 function SUM Range Cells 2 1 Cells 3 2 但它不起作用 函数不是范围内的属性 方法 如果您想对值求和 请使用以下命令 R
  • 在Excel中显示毫秒

    我正在尝试在 Excel 宏中显示毫秒 我有一列整数 它们是以毫秒为单位的时间戳 例如 28095200 是上午 7 48 15 200 我想在它旁边创建一个新列 以保持运行平均值并以hh mm ss 000格式 Dim Cel As Ra
  • 在单元格更改时循环遍历一系列单元格,以将序列中的下一个数字显示为单元格的新值

    我了解如何循环范围 For Each cell In Range A1 A5 If condition Then End If Next 我知道 OnChange 事件 Private Sub Worksheet Change ByVal
  • 自动计算Excel VBA UDF与单元格属性相关

    我编写了一个 UDF 来计算特定颜色和特定线条样式的单元格 我发布了整个函数 Function CountTime rData As Range cellRefColor As Range As Variant Dim indRefColo
  • 如果单元格 = 0,则将范围复制到主表并从主表中删除范围

    有 10 个工作表 工作表 1 工作表 10 其表处于相同范围 C25 G34 和 C42 N51 如果 总重量 列的值 gt 0 则必须复制这些行 复制的行将转到两个汇总表 前往 Westrock 表 gt Westrock 汇总表 前往
  • 如何从特定类获取特定链接?

    我想提取这个href从那个特定的class tr class even td a href italy serie a 2015 2016 Serie A 2015 2016 a td 这是我写的 Sub ExtractHrefClass
  • 宏VBA获取Outlook 2003中选定的文本

    我正在尝试使用此代码片段来获取 Outlook 2003 中选定的文本 Sub SelectedTextDispaly On Error Resume Next Err Clear Dim oText As TextRange Get an
  • 从新的 xlsx 文件中删除宏

    功能部分 下面的代码将 xlsm 文件中的 2 个选项卡保存到新的 xlsx 文件中 文件保持打开状态以进行编辑 错误 xlsm 选项卡在工作表代码中有触发器 该触发器无效 一旦在 xlsx 工作表中输入任何内容 就会导致错误 所需输出 编
  • Excel VBA - 将一行单元格值传递到数组,然后将该数组粘贴到单元格的相对引用

    使用 Excel 2010 VBA 我尝试将恒定范围的单元格 其值重新计算 复制 传递 到数组 然后我尝试将该数组传递到其正下方的新单元格范围 完成此操作后 我想再次将常量范围的新值复制 传递 到数组 并将这些新值传递到我之前传递的值正下方
  • 使用 UnmanagedExports 包 [DllExport] 在 VBA 中调用 C# DLL 触发“找不到 DLL 入口点”错误

    我在用着罗伯特 吉塞克 http stackoverflow com users 35443 robert giesecke用于访问 Excel VBA 中的 c dll 的非托管导出包 我遵循了几个示例并继续收到运行时错误 453 在 m
  • Excel 超链接到带有 ID 或命名锚点的网页位置

    在 Excel 中 我可以创建指向网页的超链接 但是 如果 URL 包含 字符 Excel 始终会将井号转换为空格 连字符 空格 因此链接不再有效 网址http www example com page location http www
  • 当第二个工作表中存在值时删除整行

    我有 2 张纸 sheet1 和sheet2 我在单元格 A3 sheet1 中有一个值 该值不是恒定的 Sheets2 中还有许多文件 我想做的是 当单元格 A3 Sheet1 中的值与 A 列 Sheet2 中的值相同时 它将删除找到该
  • 将 VBA 字符串转换为双精度

    我正在使用非常基本的 VBA for word 编码来创建一个模板 该模板可以从 Windows 中的其他屏幕中提取数据 当它提取数字时 它们被格式化为字符串 我现在需要将字符串转换为双精度 以便对它们进行加 减 我一直在尝试一切 但似乎无
  • 如何使用VBA删除工作簿中的空白工作表?

    Sub delete Dim sh As Worksheet wb As String c As Range wb InputBox work book name Set sh Workbooks wb Sheets For Each Sh
  • 转置 CopyFromRecordset Excel VBA

    我的 Excel VBA 中有以下代码 可将 SQL 中的表中的数据复制到 Excel 中 该数据从单元格 C2 开始水平插入 但我希望将其垂直插入到 C 列 Sheets Control Range C2 CopyFromRecorset
  • 将参数传递给使用“New”创建的访问表单

    我有一个名为 详细信息 的表单 它显示所选记录的详细视图 该记录是从称为 搜索 的不同形式中选择的 因为我希望能够打开 详细信息 的多个实例 每个实例显示不同记录的详细信息 所以我使用了以下代码 Public detailCollectio
  • 如何以可读的方式重写Excel公式?

    我有一个 Excel 文件 其中包含以下公式 IF OR ISERROR G16 ISERROR G17 X16 IF OR G16 xxx G16 yyy G16 zzz Y16 IF G16 333 N A IF G17 333 Z16
  • 使用 access VBA 将列表框项目添加到数组

    我在访问表单中有一个列表框 它包含 18 项 我如何使用 access vba 将这些项目存储到数组中 下面将把列表框的内容拉入数组并吐出内容 Dim Size As Integer Size Me List0 ListCount 1 Re

随机推荐

  • 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