如果您想知道当前工作表中所有已使用的单元格区域的大小,或者您想引用当前工作表中已使用的区域,那么您可能就要想到UsedRange属性了。
UsedRange属性应用于Worksheet对象,返回指定工作表中已使用区域的Range对象,即返回工作表中已使用的单元格区域。因此,该属性也可以用于选取单元格区域。
下面用一个简单的例子来说明UsedRange属性的功能。如下图1所示的工作表:

图1:一个带有数据的工作表
然后,在VBE编辑器中输入如下代码:
Sub Sample01()
  Worksheets("Sheet1").UsedRange.Select
End Sub
代码运行后,上面的工作表显示如下图2所示:

图2:代码运行后的工作表
即在指定工作表中(本例为工作表Sheet1)已使用范围被全部选中。可以看出,UsedRange属性返回工作表中所有已使用范围的单元格区域,而不管该区域数据间是否有空行或空格。
UsedRange属性的一些常见用法
(1) 返回工作表中已使用区域的行数或列数
语句 Activesheet.UsedRange.Rows.count返回当前工作表中已使用单元格区域的行数。同样,语句 Activesheet.UsedRange.Columns.count返回当前工作表中已使用单元格区域的列数。在上例中,您可以在调试窗口中输入下面语句,将返回相应的值。
?Activesheet.UsedRange.Rows.count
 20
?Activesheet.UsedRange.Columns.count
 4
一般写法为 <在此输入引用对象>.UsedRange.Rows.Count和 <在此输入引用对象>.UsedRange.Columns.Count。
(2) 返回工作表中已使用单元格区域的地址
语句 Activesheet.UsedRange.Address 返回当前工作表已使用单元格区域的地址。在上例中,您可以在调试窗口中输入下面语句,将返回已使用单元格区域地址为$A$1:$D$20。
?Activesheet.UsedRange.Address
$A$1:$D$20
一般写法为 <在此输入引用对象>.UsedRange.Address
(3) 设置工作表中已使用单元格区域对象,并进行引用或操作。如下代码所示:
Dim cellRange As Range,RowNum As Long,ColNum As Long
Set cellRange=Worksheets(“Sheet1”).UsedRange ‘设置已用单元格区域并赋值给变量
RowNum=cellRange.Rows.Count ‘已用单元格区域的行数
ColNum=cellRange.Columns.Count ‘已用单元格区域的列数

UsedRange属性示例
现在,我们举几个例子,进一步说明UsedRange属性的用法。
[示例一]下面的程序在活动工作表已使用单元格区域中,当该区域不包含任何公式时,清除该区域不能打印的字符。其中,ActiveSheet.UsedRange 代表当前工作表中已使用单元格区域组成的Range对象。(By Chip Pearson)
Sub CleanUp()
  Dim TheCell As Range
  For Each TheCell In ActiveSheet.UsedRange
    With TheCell
      If .HasFormula = False Then
        .Value = Application.WorksheetFunction.Clean(.Value)
      End If
    End With
  Next TheCell
End Sub

[示例二]下面的程序将当前工作表中已用单元格区域或所选单元格中第一个字符删除,其中,ActiveSheet.UsedRange.Address代表当前工作表中已用单元格区域的地址。
Public Sub Delete_First_Character(Optional ByRef objRange As Range = Nothing)
  Dim objCell As Range
  On Error Resume Next
  If (objRange Is Nothing) Then
     Set objRange = Application.InputBox(Prompt:="请选择单元格区域", _
        Title:="删除第一个字符", _
        Type:=8, _
        Default:=ActiveSheet.UsedRange.Address) '设置缺省选区为已用区域
  End If
  Err.Clear
  Set objRange = objRange.SpecialCells(xlCellTypeConstants)
  If (Err.Number <> 0&) Or (objRange Is Nothing) Then
    MsgBox "在指定的单元格区域中没有符合要求的单元格.", _
    vbExclamation Or vbOKOnly, _
    ActiveWorkbook.Name
    Exit Sub
  End If
  On Error GoTo Exit_Delete_First_Character
  Application.ScreenUpdating = False
  For Each objCell In objRange
    objCell = Mid$(objCell, 2)
  Next objCell
Exit_Delete_First_Character:
  On Error Resume Next
  Application.ScreenUpdating = True
End Sub

[示例三]在本示例中,当您在工作表的E列中的单元格中输入“finish”后,点击右侧按钮,将会对此行用指定的背景色进行标识,如图3和图4。

图3:在E8单元格中输入“finish”

图4:点击按钮后的效果
当您删除单元格E6中的数据,如下图5所示。

图5:删除单元格E6中的数据

图6:点击按钮后的效果
本示例中按钮所附加的代码如下,其中,UsedRange.Rows.Count表示当前工作表中已使用区域的行数。
Private Sub CommandButton1_Click()
  Dim r As Long
  For r = UsedRange.Rows.Count To 1 Step -1
    If Range("E" & r) = "finish" Then _
      Range("A:G").Rows(r).Interior.ColorIndex = 10
    Next r
  For r = UsedRange.Rows.Count To 1 Step -1
    If Range("E" & r) = "" Then _
      Range("A:G").Rows(r).Interior.ColorIndex = 2
  Next r
End Sub
[提示]您可以将此代码放置在工作表变化事件中,这样,当工作表变化时,符合条件的相应行会自动标记背景色。

[示例四]本示例演示了删除行操作,即在活动工作表已使用单元格区域中,若某单元格中包含有“AND”(如为ANDXXX或XXXANDXX或XXXAND等,不区分大小写),则删除该单元格所在行。ActiveSheet.UsedRange.Find(what)表示在当前工作表所有已使用单元格区域中查找含有变量what中的内容的单元格,程序代码如下:(by Patrick Molloy)
Sub Find_AND()
  Dim rng As Range
  Dim what As String
  what = "AND"
  Do
    Set rng = ActiveSheet.UsedRange.Find(what)
    If rng Is Nothing Then
      Exit Do
    Else
       Rows(rng.Row).Delete
    End If
  Loop
End Sub
[提示]您可以更改程序中所查找的字符,从而实现您所想要的目的。

解析UsedRange属性相关推荐

  1. 通过解析价值属性,看懂环球UES的数字服务

    通过解析价值属性,看懂环球UES的数字服务 不知不觉,区块链技术走进大众的视野已经有10年的时间了. 对于这个一步一步成为时代的弄潮儿,很多人其实并不了解它-- 如何看懂区块链的价值?对于很多投资者来 ...

  2. VBA之UsedRange属性

    1 'Worksheet.UsedRange 属性 2 '返回一个 Range 对象,该对象表示指定工作表上所使用的区域 3 4 5 Sub 已使用区域() '选中工作表里"占用" ...

  3. 关于 Excel 2003 vba usedrange属性

    关于 Excel 2003 vba usedrange属性 vba usedrange属性 如果您想知道当前工作表中所有已使用的单元格区域的大小,或者您想引用当前工作表中已使用的区域,那么您可能就要想 ...

  4. 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发

    文章目录 Mabatis 四.配置解析 1.核心配置文件 2.environments(环境配置)☆ 3.properties(属性)☆ 4.typeAliases(类型别名)☆ 5.settings ...

  5. sql server解析xml属性为表格_Mybatis中SqlSource解析流程详解

    前面几篇文章都在详细分析mapper的加载过程,但是始终没有看到sql的解析过程,今天来详细分析下. 解析sql的位置 前面分析到不管是通过注解还是通过xml方式生成mapper,最终都是调用Mapp ...

  6. sql server解析xml属性为表格_[Mybatis][基础支持层]mapper xml sql 解析

    该系列文章针对 Mybatis 3.5.1 版本 Mybatis 中 标签解析,主要是为了得到两大部分数据 1.Mapper.class 接口 2.SQL 执行语句,结果集映射关系等数据 在上一章中提 ...

  7. WPF快速入门系列(2)——深入解析依赖属性

    一.引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己开始更新WPF系列.尽管最近看到一篇WPF技术是否老矣的文章,但是还是不能阻止我系统学习WPF.今天继续分享WPF中一个最 ...

  8. Google Test(GTest)使用方法和源码解析——私有属性代码测试技术分析

    有些时候,我们不仅要测试类暴露出来的公有方法,还要测试其受保护的或者私有方法.GTest测试框架提供了一种方法,让我们可以测试类的私有方法.但是这是一种侵入式的,会破坏原来代码的结构,所以我觉得还是谨 ...

  9. 字符串的html语言,html语言解析为属性字符串NSMutableAttributedString

    NSString *htmlString=[NSString stringWithFormat:@" %@",html语言字段]; NSMutableAttributedStrin ...

最新文章

  1. 10个免费好用功能强大的网页动画效果库
  2. mysql 列转置_MySQL 行列转置
  3. 如何在XenDesktop没有工具栏情况下实现U盘自动映射为可移动磁盘
  4. Archive for required library: ‘WebContent/WEB-INF/lib/xxx.jar cannotn
  5. Linux里面lvs的基础命令,Linux中使用ipvsadm配置LVS集群的基本方法
  6. python扫题软件_python 实现端口扫描工具
  7. BeginInvoke之前检测句柄
  8. slowfast 跑多卡的时候遇到问题
  9. c++中RTTI的观念和使用
  10. 奇妙的证明 —— 0! = 1(a^0=1)
  11. js求数组最大值方法汇总
  12. paip.项目文件同步-分支和合并总结V2012.9.23
  13. 核心单词Word List 2
  14. 小白vba之批量数据整理(excel自动化入门)
  15. PHP(gzdeflate/gzinflate)+JS(pako)前后端数据压缩
  16. 全志平台Android系统wifi模组rtl8188eu移植调试记录
  17. 【推免】笔试+机试+面试 准备
  18. 太酷了!用200个LED做一个智能手表(开源)
  19. excel系列【下拉项二选一】
  20. ping 加上时间信息

热门文章

  1. 华为oj初级 字符逆序
  2. Istio1.12.1 Sidecar注入配置
  3. 【测控电路】自举式高输入阻抗放大电路
  4. 日本人开发的搜索引擎
  5. 李居明风水人人都懂版之六~邻居与风水
  6. 有道云笔记and印象笔记
  7. 物联网工程实践日报表2
  8. 我的世界Java版黑屏加闪退_我的世界黑屏闪退怎么办 海洋版黑屏闪退解决方法...
  9. 线程池参数到底要怎么配?这可能是最好的答案
  10. 【转】Python 量化投资实战教程(1) — Backtrader 教程