分享

重磅 | Excel VBA解读:Range对象篇

 rhfordinary 2018-02-04

 

我们在Excel中整理、分析和处理数据时,都是围绕单元格进行大多数操作,因此Range对象是Excel VBA中最常用的对象,也是最重要的对象。在ExcelVBA解读》系列第2季中,我们详细讲解了Range对象的大多数方法和属性,现整理于此,以飨读者。

 

在这里,我们汇总了ExcelVBA解读》系列第2季的目录介绍了每篇文章的主要内容,同时对每篇文章进行了链接只要你点击标题即可转入相应的文章页面),方便有兴趣的读者查找并学习相应的内容。



 

30.开始掌握Excel对象模型

回顾了在ExcelVBA解读》1中初步介绍的Excel对象模型以及一些Range对象和属性,粗略介绍了接下来的文章中要详细讲解的内容。

 

31.Range对象——从选取单元格说起

选取单元格是最基本的操作。本文详细介绍了选取单元格或单元格区域的Select方法和确定当前活动单元格的Activate方法,以及它们之间的差别。

 

32.到达想要的单元格——Offset属性

详细地讲解了Range对象的Offset属性,包括该属性的作用、语法及参数说明,以及一些帮助理解该属性的代码和示例,优化了前面文章中的员工管理系统代码。

 

33.装修匠来了——初步应用单元格格式

为方便后续文章中示例的讲解,本文简要地介绍了VBA中一些对单元格字体和背景进行格式化的操作,包括:操作Font对象Bold属性Name属性Color属性ColorIndex属性等)设置单元格中的字体属性,操作Interior对象Color属性ColorIndex属性)设置单元格背景色。(使用GRB函数组合出不同的颜色)

 

34.找到单元格所在的行号——Row属性和Column属性

回顾了前面介绍的Rows属性Columns属性,详细讲解了Row属性及示例代码。Column属性用法类似。

 

35.对单元格进行统计——Count属性

详细讲解了用来获取单元格数或者行列数的Count属性

 

36.快速移动单元格——End属性

详细讲解了在单元格区域中大范围移动的End属性:包括End属性的语法及说明,示例代码及获取最后一行的通用代码,进一步优化了前面文章中的员工管理系统代码。

 

37.单元格的扩张——Resize属性

详细讲解了基于给定的单元格或单元格区域扩展或缩小单元格区域的Resize属性:包括Resize属性的语法及说明、示例代码。

 

38.快速确定自已的地盘——CurrentRegion属性

详细讲解了快速获取当前单元格所在区域的CurrentRegion属性,试验了该属性在不同情形下所获取的具体区域,给出了两个示例。

 

39.快速确定工作表中已使用的区域——UsedRange属性

详细讲解了获取工作表已使用区域的UsedRange属性,试验了该属性在不同情形下所获取的具体区域。

 

40.告诉你单元格住哪儿——使用Address属性获取单元格地址

详细讲解了Address属性的语法及参数说明,演示了设置不同参数时所获取的地址形式。

 

41.藏得再好也能找到——使用Find方法实现查找

通过示例演示了Range对象Find方法,详细讲解了Find方法的语法和参数说明,并讲解了相关方法:FindNext方法FindPrevious方法的使用及示例。(这些方法在代码中非常有用,值得花时间理解

 

42.学生管理系统开发V1.3

进一步完善前面文章中的学生管理系统:使用了动态名称来定义数据有效性,从而实时更新数据,然后利用Find方法查找指定的数据内容并自动填充相应单元格。

 

43.快速定位到特定的单元格——SpecialCells方法

详细讲解“定位条件”对话框中的选项在VBA代码中的实现,即SpecialCells方法的语法及参数说明,给出了一个示例:查找最后的单元格

 

44.将单元格联合起来——Union方法

讲解了将不同的区域组合成一个区域的Union方法,给出了一个示例:查找并获取工作表中指定内容的所有单元格

 

45.查找重叠的单元格区域——Intersect方法

讲解了能够获取单元格区域中重合部分的Intersect方法,给出了2个应用示例:①判断两个单元格区域是否有重叠②用VBA实现保护单元格功能

 

46.选取非连续的单元格区域——Areas集合

详细讲解了代表工作表中所选取的由一块块单元格区域组成的非连续区域的Areas集合对象的使用,给出了2个示例:①为不同单元格区域(或者根据条件)设置不同的背景色②将工作表中的常量区域的背景色设置为红色(将Areas集合SpecialCells方法结合使用,为我们操作特定区域提供了一种新思路)。此外,还补充讲解了如何表示单元格区域中的单元格。

 

47.获取整行或整列——EntireRow属性和EntireColumn属性

介绍了代表指定单元格所在的整行或整列的EntireRow属性EntireColumn属性,给出了两个示例:隐藏空行高亮显示当前单元格所在的行和列

 

48.使用VBA找到想要的单元格——小结

对前面讲解的找到想要的单元格的属性或方法进行小结,以助于读者加深对这些属性或方法的理解。

 

49.复制或剪切单元格——Copy方法与Cut方法

详细介绍了如何在VBA中实现Excel中最频繁使用的复制或剪切操作,即使用Copy方法Cut方法,包括它们的语法及参数说明、使用情形等。给出了2个示例:①查找满足条件的数据并将相关数据复制到指定区域②复制特定的数据到指定区域

 

50.选择性粘贴——PasteSpecial方法

详细讲解了如何在VBA中使用Range对象的PasteSpecial方法进行粘贴操作,包括PasteSpecial方法的语法及详细参数说明。给出了5个示例:①只粘贴格式而不粘贴值②只粘贴值③粘贴值并保持列宽④对粘贴的区域进行运算⑤将行列转置。同时,指出了使用粘贴时容易出错的2点陷阱。

 

51.替换——Replace方法

详细讲解了VBA中实现数据替换的Replace方法,包括该方法的语法及详细的参数说明,并给出了2个示例:①用不同的值同时替换不同的区域②替换格式FindFormat属性ReplaceFormat属性)。

 

52.自动筛选—AutoFilter方法

详细讲解了在VBA中实现自动筛选功能的AutoFilter方法,包括该方法的语法及详细的参数说明,并提供了6个有用的示例:①移除自动筛选提供的下拉箭头②一次执行多个列字段的筛选③复制筛选结果④删除筛选出的数据AutoFilterMode属性Delete方法)、⑤根据当前单元格内容筛选数据⑥根据当前单元格内容实时筛选数据并将数据粘贴到指定位置

 

53.高级筛选——AdvancedFilter方法

详细讲解了在VBA中实现高级筛选功能的AdvancedFilter方法,包括不同情形下的筛选技巧、AdvancedFilter方法的语法及参数说明,并提供了5个实用的技巧示例:①获取不重复值②获取两列或多列组合后的不重复值③根据条件区域筛选④设置逻辑条件筛选(不同组合代表的逻辑、使用公式作为筛选条件)、⑤找出两列中不相同的内容Clear方法)。

 

54.排序——Sort方法

详细讲解了VBASort方法的语法及参数说明,提供了7个技巧示例:①查找满足某项条件的所有数据并按顺序排列②查找满足某项条件的不重复数据(与高级筛选组合)、③双击列标题自动排序④根据活动单元格排序⑤根据颜色排序ClearContents方法)、⑥排序有部分相同数据的行⑦自定义排序(介绍了Application对象AddCustomList方法GetCustomListNum方法DeleteCustomList方法)。

 

55.在VBA中使用公式1——Formula属性和FormulaR1C1属性

首先介绍了Excel中的A1引用样式和R1C1引用样式,然后讲解Range对象Formula属性FormulaR1C1属性的代码及相关说明,以及在VBA中使用R1C1样式公式的优点及相应的例子。

 

56.在VBA中使用公式2——FormulaArray属性及相关属性

讲解了在VBA中使用FormulaArray属性输入数组公式的代码,给出了一个实用示例:汇总每类水果的销售额(结合AdvancedFilter方法实现)。接着讲解了相关属性:FormulaHidden属性HasFormula属性HasArray属性。最后提供了3个应用示例(含技巧):①找出两列中不相同的内容IsError函数)、②快速填充单元格区域中的空单元格③查找数据并计算(公式中有变量时的正确书写方式)。

 

57.自动填充单元格——AutoFill方法

讲解了在VBA中实现自动填充单元格的AutoFill方法,包括语法及参数说明,并提供了6个实用技巧示例:①使用代码在列中输入序号②自动更新列中的序号③按自定义列表填充④自动填充月份⑤自动填充工作日⑥自动填充公式

 

58.填充——FillDown方法

详细讲解了VBA中实现单元格向下填充的FillDown方法,提供了2个示例:①自动填充公式②用空单元格上方的单元格数据填充单元格区域中的空单元格,并介绍了相关的FillUp方法FillLeft方法FillRight方法

 

59.合并单元格

详细讲解了在VBA中实现合并单元格操作的Merge方法,包括其语法和参数说明,介绍了相关的方法和属性:UnMerge方法MergeArea属性MergeCells属性。提供了3个应用示例:①判断单元格是否为合并单元格并取消单元格合并②判断单元格是否包含在合并单元格区域③合并内容相同的单元格(与AdvancedFilter方法结合、DisplayAlerts属性)。

 

60.在VBA中获取或者设置单元格的尺寸和位置

集中介绍了Range对象与单元格尺寸和位置相关的属性和方法:ColumnWidth属性RowHeight属性UseStandardHeight属性UseStandardWidth属性Width属性Height属性Left属性Top属性,以及AutoFit方法。提供了5个应用示例:①设置所选区域的列宽为所在列中最大列的列宽②获取单元格的行高③设置输入行行高的最小值④恢复工作表中行高列宽的标准尺寸⑤在工作表单元格中添加组合框DropDown对象)。

 

61.设置单元格格式

概要地介绍了设置单元格格式的对象、属性和方法:Font对象Interior对象Border对象BordersAround方法HorizontalAlignment属性VerticalAlignment属性Orientation属性WrapText属性ShrinkToFit属性Justify方法Style属性提供了几段代码:①列出xlPattern常量表示的图案②列出颜色面板中的颜色及索引值③列出xlBordersIndex常量对应的边框④列出边框线条型式

 

62.设置数字格式

介绍了在VBA中设置或者获取数字格式的NumberFormat属性及相关代码。列举了5个示例:①单元格数值 VS.单元格文本值、②获取单元格数字格式、③统计单元格区域中某数字格式出现的次数、④将所选单元格区域中的电话号码设置为指定格式、⑤替换格式。

 

63.单元格批注

讲解在VBA中实现单元格批注的一系列操作,包括设置批注的相关属性和方法:AddComment方法Comment属性Visible属性Text方法ClearComments方法Author属性Shape属性Previous属性Next属性Delete方法。给出了3个示例:①添加单元格批注、②获取单元格批注、③在单元格批注中放置图片。

 

64.初步使用名称

主要介绍Range对象关于名称的属性和方法,为进一步理解名称及其应用打下基础。包括Range对象Name属性CreateNames方法ApplyNames方法ListNames方法。给出了5个示例:①列出工作簿中的所有命名区域的名称、②对命名区域进行格式化操作、③以命名区域为基准移动区域、④以命名区域为基准扩展区域、⑤遍历命名区域。

 

65.补遗——Range对象其他一些属性和方法

主要介绍前面系列文章中还没有讲解的Range对象的一些属性和方法:Insert方法Delete方法Clear方法系列、CopyPicture方法CurrentArray属性Characters属性Item属性Next属性Previous属性Errors属性Calculate方法Validation属性FormatConditions属性,给出了相应的图文对照。

 


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多