ExcelHome技术论坛

 找回密码
 免费注册
QQ登录 只需一步,快速开始
   
高效办公必会的Office99uu优优 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel函数公式学习大典 当当ExcelHome畅销图书满200-100 免费下载Excel行业应用视频
300集Office 2010微99uu优优 Tableau-数据可视化工具 突破Excel限制,用活字格提高效率 12门Excel免费公开课任你学
你的Excel 201099uu优优学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
楼主: yuanzhuping
打印 上一主题 下一主题

VBA常用技巧代码解析

    [复制链接]
TA的精华主题TA的得分主题
21
 楼主| 发表于 2009-2-10 07:57 | 只看该作者

第1部分Range(单元格)对象

本帖已被收录到知识树中,索引项:开发帮助和教程
技巧3         获得指定行、列中的最后一个非空单元格
       使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,如单元格地址、行列号、数值等,如下面的代码所示。
  • #001  Sub LastRow()
  • #002      Dim rng As Range
  • #003      Set rng = Sheet1.Range("A65536").End(xlUp)
  • #004      MsgBox "A列中最后一个非空单元格是" & rng.Address(0, 0) _
  • #005          & ",行号" & rng.Row & ",数值" & rng.Value
  • #006      Set rng = Nothing
  • #007  End Sub
  • 复制代码
    代码解析:
           LastRow过程使用消息框显示工作表中A列最后非空单元格的地址、行号和数值。
           End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键<End+向上键>、<End+向下键>、<End+向左键>或<End+向右键>,语法如下:
    expression.End(Direction)
           参数expression是必需的,一个有效的对象。
           参数Direction是可选的,所要移动的方向,可以为如图所示的XlDirection 常量之一。

           Range对象的End属性返回的是一个Range对象,因此可以直接使用该对象的属性和方法。
        运行LastRow过程结果如所示。


           通过修改相应的参数,能够获得指定行中最后一个非空单元格,如下面的代码所示。
  • #001  Sub LastColumn()
  • #002      Dim rng As Range
  • #003      Set rng = Sheet1.Range("IV1").End(xlToLeft)
  • #004      MsgBox "第一行中最后一个非空单元格是" & rng.Address(0, 0) _
  • #005          & ",列号" & rng.Column & ",数值" & rng.Value
  • #006      Set rng = Nothing
  • #007  End Sub
  • 复制代码
    代码解析:
           LastColumn过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值,所示


    [ 本帖最后由 yuanzhuping 于 2009-2-16 22:58 编辑 ]
    技巧3 获得指定行、列中的最后一个非空单元格.rar 5.73 KB, 下载次数: 3771
    TA的精华主题TA的得分主题
    22
    发表于 2009-2-10 08:00 | 只看该作者
    感谢楼主分享,能同时更新上传word 文档吗?
    TA的精华主题TA的得分主题
    23
     楼主| 发表于 2009-2-10 08:11 | 只看该作者
    原帖由 tiantiansay 于 2009-2-10 08:00 发表
    感谢楼主分享,能同时更新上传word 文档吗?

    在第1部分内容整理结束后我会将word 文档上传,现在还只是个目录和一部分的内容。
    TA的精华主题TA的得分主题
    24
    发表于 2009-2-10 08:18 | 只看该作者
    TA的精华主题TA的得分主题
    25
     楼主| 发表于 2009-2-10 08:58 | 只看该作者

    第1部分Range(单元格)对象

    技巧4         定位单元格
           在Excel中使用定位对话框可以选中工作表中特定的单元格区域,而在VBA中则使用SpecialCells方法,如下面的代码所示。

  • #001  Sub SpecialAddress()
  • #002      Dim rng As Range
  • #003      Set rng = Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas)
  • #004      rng.Select
  • #005      MsgBox "工作表中有公式的单元格为: " & rng.Address
  • #006      Set rng = Nothing
  • #007  End Sub
  • 复制代码

    代码解析:
           SpecialAddress过程使用SpecialCells方法选中工作表中有公式的单元格,并用消息框显示其地址。
           SpecialCells方法返回一个Range对象,该对象代表与指定类型及值相匹配的所有单元格,语法如下:
    expression.SpecialCells(Type, Value)
           参数expression是必需的,返回一个有效的对象。
           参数Type是必需的,要包含的单元格,可为表格所列的XlCellType常量之一。

           第3行代码将SpecialCells方法的Type参数设置为xlCellTypeFormulas,返回的是含有公式的单元格,通过修改相应的参数可以返回不同的单元格。
           参数Value是可选的,如果Type参数为xlCellTypeConstants或xlCellTypeFormulas, 此参数可用于确定结果中应包含哪几类单元格。将某几个值相加可使此方法返回多种类型的单元格。如果省略将选定所有常量或公式,可为表格所列的 XlSpecialCellsValue常量之一。

           第5行代码使用消息框显示工作表中含有公式单元格的地址。SpecialCells方法返回的是Range对象,因此可以直接使用该对象的属性和方法。
           运行SpecialAddress过程结果如图所示。


    [ 本帖最后由 yuanzhuping 于 2009-2-16 21:54 编辑 ]
    技巧4 定位单元格.rar 7.15 KB, 下载次数: 3352
    TA的精华主题TA的得分主题
    26
    发表于 2009-2-10 09:43 | 只看该作者
    TA的精华主题TA的得分主题
    27
    发表于 2009-2-10 09:54 | 只看该作者
    TA的精华主题TA的得分主题
    28
    发表于 2009-2-10 10:09 | 只看该作者
    TA的精华主题TA的得分主题
    29
    发表于 2009-2-10 13:34 | 只看该作者
    TA的精华主题TA的得分主题
    30
    发表于 2009-2-10 14:34 | 只看该作者
    您需要登录后才可以回帖 登录 | 免费注册
    本版积分规则
    关闭

    最新热点上一条 /1 下一条

    关注官方微信,每天学会一个新技能
    手机版|关于我们|联系我们|ExcelHome GMT+8, 2018-4-23 11:45 , Processed in 0.077185 second(s), 9 queries , Gzip On, MemCache On.
    Powered by Discuz! X3.4 © 2001-2017 Wooffice Inc.
        沪公网安备 31011702000001号 沪ICP备11019229号 本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师
    快速回复 返回顶部 返回列表
    99uu优优