电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

使用VBA代码确定激活选择格区域

20页
  • 卖家[上传人]:ji****72
  • 文档编号:40493094
  • 上传时间:2018-05-26
  • 文档格式:DOC
  • 文档大小:106KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、单元格区域引用方式的小结单元格区域引用方式的小结单元格区域引用方式的小结单元格区域引用方式的小结 EXCEL 技巧 2008-11-29 12:10:20 阅读 97 评论 0 字号:大中小 订阅 在使用 ExcelVBA 进行编程时,我们通常需要频繁地引用单元格区域,然后再使用相应的属性和方法对区域进行操作。所谓单元格区域,指的是单个的单元格、或者是由多个单元格组成的区域、或者是整行、整列等。下面,我们设定一些情形,以问答的形式对引用单元格区域的方式进行归纳。 -问题一:在 VBA 代码中,如何引用当前工作表中的单个单元格(例如引用单元格 C3)?回答:可以使用下面列举的任一方式对当前工作表中的单元格(C3)进行引用。(1) Range(“C3“)(2) C3(3) Cells(3, 3)(4) Cells(3, “C“)(5) Range(“C4“).Offset(-1)Range(“D3“).Offset(, -1)Range(“A1“).Offset(2, 2)(6) 若 C3 为当前单元格,则可使用:ActiveCell(7) 若将 C3 单元格命名为“Range1”,则可使

      2、用:Range(“Range1“)或Range1(8) Cells(4, 3).Offset(-1)-问题二:在 VBA 代码中,我要引用当前工作表中的 B2:D6 单元格区域,有哪些方式?回答:可以使用下面列举的任一方式对当前工作表中单元格区域 B2:D6 进行引用。(1) Range(“B2:D6”)(2) Range(“B2“, “D6“)(3) B2:D6(4) Range(Range(“B2“), Range(“D6“)(5) Range(Cells(2, 2), Cells(6, 4)(6) 若将 B2:D6 区域命名为“MyRange”,则又可以使用下面的语句引用该区域: Range(“MyRange“) MyRange(7) Range(“B2“).Resize(5, 3)(8) Range(“A1:C5“).Offset(1, 1)(9) 若单元格 B2 为当前单元格,则可使用语句:Range(ActiveCell, ActiveCell.Offset(4, 2)(10) 若单元格 D6 为当前单元格,则可使用语句:Range(“B2“, ActiveCell)-问题

      3、三:在 VBA 代码中,如何使用变量实现对当前工作表中不确定单元格区域的引用?回答:有时,我们需要在代码中依次获取工作表中特定区域内的单元格,这通常可以采取下面的几种方式:(1) Range(“A” 2) xlNumbers(包含数字);3) xlErrors(包含错误值); 4) xlLogical(包含逻辑值)自已在工作表输入一些含有数值和公式的数据,隐藏或不隐藏最后一行或公式所在的行,先体验下面的两段示例代码。示例代码 08当最后一行为公式或隐藏了最后行时,会忽略,即认为倒数第二行为最后一行Sub NextConstantRowFunction()Range(“A“ & LastConstantRow(True, True, True, True) + 1).SelectEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - Public Function LastConstantRow(Optional IncludeText As Boolean, _Optional IncludeNumbers As Boolean,

      4、_Optional IncludeErrors As Boolean, _Optional IncludeLogicals As Boolean) As LongDim Text As Long, Numbers As Long, Errors As LongDim Logical As Long, AllTypes As LongIf IncludeText Then Text = xlTextValues Else Text = 0If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0If IncludeErrors Then Errors = xlErrors Else Errors = 0If IncludeLogicals Then Logical = xlLogical Else Logical = 0AllTypes = Text + Numbers + Errors + LogicalOn Error GoTo FinishLastConstantRow = Split(Cells.SpecialCells

      5、(xlCellTypeConstants, AllTypes).Address, “$“) _(UBound(Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes).Address, “$“)Exit FunctionFinish:MsgBox “没有发现数据!“End Function示例代码 09查找含有公式的单元格所在的行,忽略该行以后的常量和隐藏的行Sub NextFormulaRowFunction()Range(“A“ & LastFormulaRow(True, True, True, True) + 1).SelectEnd Sub- - - - - - - - - - - - - - - - - - - Public Function LastFormulaRow(Optional IncludeText As Boolean, _Optional IncludeNumbers As Boolean, _Optional IncludeErrors As Boolean, _Optional IncludeLog

      6、icals As Boolean) As LongDim Text As Long, Numbers As Long, Errors As LongDim Logical As Long, AllTypes As LongIf IncludeText Then Text = xlTextValues Else Text = 0If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0If IncludeErrors Then Errors = xlErrors Else Errors = 0If IncludeLogicals Then Logical = xlLogical Else Logical = 0AllTypes = Text + Numbers + Errors + LogicalOn Error GoTo FinishLastFormulaRow = Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes).Address, “$“) _(UBound(Spl

      7、it(Cells.SpecialCells(xlCellTypeFormulas, AllTypes).Address, “$“)Exit FunctionFinish:MsgBox “没有发现数据!“End Function下面的示例代码 10 忽略最后一行带有公式的单元格,即当最后一行的单元格中含有公式时,将倒数第二行作为最后一行,即只考虑直接输入到工作表中的数据。当最后一行没有公式但被隐藏时,并不影响该方法的判断。示例代码 10Sub SpecialCells_LastRowxlCellTypeConstants()Dim MyRow As RangeOn Error GoTo FinishSet MyRow = Intersect(A:A, Cells. _SpecialCells(xlCellTypeConstants).EntireRow).EntireRow获取最后一行MsgBox “最后一行是第“ & Split(MyRow.Address, “$“) _(UBound(Split(MyRow.Address, “$“) & “行”Set MyRow = Nothing

      8、Exit SubFinish:MsgBox “没有发现数据!“End Sub注:因为上述代码使用了Split函数,故只适合于 Office2000 及以上的版本。该方法也允许我们指定单个数据类型,诸如数字数据或文本数据,如下所示。下面,我们查找的最后一行是仅在行中有数字(而不包含公式)的单元格的最后一行。示例代码 11Sub SpecialCells_LastRowxlCellTypeNumberConstants()Dim MyRow As RangeOn Error GoTo FinishSet MyRow = Intersect(A:A, Cells. _SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow)获取最后一行MsgBox “最后一行是第“ & Split(MyRow.Address, “$“) _(UBound(Split(MyRow.Address, “$“) & “行”Set MyRow = NothingExit SubFinish:MsgBox “没有发现数据!“End Sub下面,我们查找的最后一行是仅

      9、在行中有文本(而不包含公式)的单元格的最后一行。示例代码 12Sub SpecialCells_LastRowxlCellTypeTextConstants()Dim MyRow As RangeOn Error GoTo FinishSet MyRow = Intersect(A:A, Cells. _SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow)获取最后一行MsgBox “最后一行是第“ & Split(MyRow.Address, “$“) _(UBound(Split(MyRow.Address, “$“) & “行”Set MyRow = NothingExit SubFinish:MsgBox “没有发现数据!“End Sub下面,我们查找的最后一行是仅在行中有公式的单元格的最后一行。示例代码 13Sub SpecialCells_LastRowxlCellTypeFormulas()Dim MyRow As RangeOn Error GoTo FinishSet MyRow = Intersect(A:A, Cells. _SpecialCells(xlCellTypeFormulas).EntireRow).EntireRow获取最后一行MsgBox “最后一行是第“ & Split(MyRow.Address, “$“) _(UBound(Split(MyRow.Address, “$“) & “行”Set MyRow = NothingExit SubFinish:

      《使用VBA代码确定激活选择格区域》由会员ji****72分享,可在线阅读,更多相关《使用VBA代码确定激活选择格区域》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.