关于 Excel 2003 vba usedrange属性

vba usedrange属性

如果您想知道当前工作表中所有已使用的单元格区域的大小,或者您想引用当前工作表中已使用的区域,那么您可能就要想到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
[提示]您可以更改程序中所查找的字符,从而实现您所想要的目的。

关于 Excel 2003 vba usedrange属性相关推荐

  1. Excel 2003 VBA编程参考

    Excel 2003 VBA编程参考 关于作者 Paul Kimmel Paul Kimmel于1990年创立了Software Conceptions公司,并从那时开始设计和创建软件以及编写计算机图 ...

  2. VBA之UsedRange属性

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

  3. Excel 2010 VBA 入门 037 获取最后一行数据的行数

    目录 示例: 实现代码1 使用Find方法查找最后的单元格 Find方法按行查找和按列查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据 ...

  4. 有没有办法破解密码的Excel的VBA项目

    我一直要求更新Excel 2003中的宏,但VBA项目有密码保护,而且似乎还有欠缺,没有人知道密码. 有没有对VBA项目删除或破解口令的方法是什么? 本文地址 :CodeGo.net/60693/  ...

  5. VBA CurrentRegion属性示例

    CurrentRegion属性与UsedRange属性是我们在VBA编程中经常用到的2个极为重要的属性,它们有相同之处,也有不同处.下面先介绍CurrentRegion属性. CurrentRegio ...

  6. 计算机excel表格相关考试视频,1189.5天通过职称计算机考试:Excel 2003中文电子表格(考点视频串讲+全真模拟).pdf...

    <<5天通过职称计算机考试:Excel 2003中文电子表格(考点视频 串讲+全真模拟)>> 猛点这里下载全部内容 目录: 第1章 Excel应用基础 考点1 Excel的启动 ...

  7. 【Monkey Run】Excel编程 VBA

    Excel编程 VBA 天气如此舒适,装B逐渐减少,所以最近的blog输出一直停滞不前.然而最近一直忙于Excel编程,觉得也有点从0到1的学习创造过程,有必要总结记录下.具体的VBA编程知识可以借鉴 ...

  8. POI事件模式读取Excel 2003文件

    一.概述 1. Excel 2003文件(即后缀为xls)是二进制文件,存储结构为复合文档,POI读取xls文件有两种方式 用户模式(usermodel):一次性将xls文件读入到内存,创建dom结构 ...

  9. Excel 2010 VBA 入门 100 将xls格式工作簿批量转换为xlsx格式

    目录 示例 代码 使用HasVBProject属性判断工作簿是否有代码 禁止打开工作簿时执行程序 示例 在某个文件夹下存有若干个以Excel 2003版本存储的工作簿(xls格式).将这些xls格式的 ...

最新文章

  1. Html/CSS博文目录
  2. c语言单词翻译大全,c语言单词翻译
  3. BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞
  4. ubuntu系统使用Anaconda安装tensorflow-gpu环境
  5. Linux下社交平台,Linux 启动
  6. SELECT TOP n 性能测试
  7. 使用urllib2库实现有道翻译
  8. ThinkPHP扩展,实现Redis的CURD操作。
  9. 10款精选的后台管理系统,收藏吧!
  10. 【滤波器】基于matlab高斯滤波器【含Matlab源码 995期】
  11. javascript函数传参
  12. winrm java客户端_Windows 远程管理WinRM | 学步园
  13. 360 se html document 广告,广告拦截 - 360极速浏览器
  14. android中倒计时计算器,死亡计算器生命倒计时下载-死亡计算器生命倒计时软件下载 v8.8.0_5577安卓网...
  15. PIC16F887 单片机 PROTEUS 仿真 C程序 模拟电话拨号计算器 密码锁
  16. 整个部门就一个研发?
  17. 北航计算机技术硕士含金量,中科院软件工程的工程硕士含金量怎么样?对比清华,北大,北邮和北航?...
  18. 2022年风机行业定义及分类
  19. 手游服务端框架之后台管理工具
  20. 区块链适合的应用场景

热门文章

  1. 4.BLE---广播信道防冲突与数据信道选择
  2. Android 开机震动、动画、铃声添加方案
  3. 企业微信与视频号怎么开通,企业最多可以开多少个公众号
  4. Android P (9.0)限制 Http 明文请求的问题
  5. 普乐蛙元宇宙VR体验馆项目|VR太空互动体验馆设备|虚拟现实VR体验馆
  6. opencv灰度图转伪彩图或彩色图
  7. html一键打包iOS,GDB苹果网页一键打包工具(IOS,IPA,苹果应用网页打包,Windows平台)...
  8. SpringSecurity-9-实现通过手机短信进行认证功能
  9. k8s dial tcp connect: no route to host
  10. window系统下Node.js安装以及环境变量配置