我们在Excel中整理、分析和处理数据时,都是围绕单元格进行大多数操作,因此Range对象是Excel VBA中最常用的对象,也是最重要的对象。在《ExcelVBA解读》系列第2季中,我们详细讲解了Range对象的大多数方法和属性,现整理于此,以飨读者。
在这里,我们汇总了《ExcelVBA解读》系列第2季的目录并介绍了每篇文章的主要内容,同时对每篇文章进行了链接(只要你点击标题即可转入相应的文章页面),方便有兴趣的读者查找并学习相应的内容。
回顾了在《ExcelVBA解读》第1季中初步介绍的Excel对象模型以及一些Range对象和属性,粗略介绍了接下来的文章中要详细讲解的内容。
选取单元格是最基本的操作。本文详细介绍了选取单元格或单元格区域的Select方法和确定当前活动单元格的Activate方法,以及它们之间的差别。
详细地讲解了Range对象的Offset属性,包括该属性的作用、语法及参数说明,以及一些帮助理解该属性的代码和示例,优化了前面文章中的员工管理系统代码。
为方便后续文章中示例的讲解,本文简要地介绍了VBA中一些对单元格字体和背景进行格式化的操作,包括:操作Font对象(Bold属性、Name属性、Color属性、ColorIndex属性等)设置单元格中的字体属性,操作Interior对象(Color属性、ColorIndex属性)设置单元格背景色。(使用GRB函数组合出不同的颜色)
回顾了前面介绍的Rows属性和Columns属性,详细讲解了Row属性及示例代码。Column属性用法类似。
详细讲解了用来获取单元格数或者行列数的Count属性。
详细讲解了在单元格区域中大范围移动的End属性:包括End属性的语法及说明,示例代码及获取最后一行的通用代码,进一步优化了前面文章中的员工管理系统代码。
详细讲解了基于给定的单元格或单元格区域扩展或缩小单元格区域的Resize属性:包括Resize属性的语法及说明、示例代码。
详细讲解了快速获取当前单元格所在区域的CurrentRegion属性,试验了该属性在不同情形下所获取的具体区域,给出了两个示例。
39.快速确定工作表中已使用的区域——UsedRange属性
详细讲解了获取工作表已使用区域的UsedRange属性,试验了该属性在不同情形下所获取的具体区域。
40.告诉你单元格住哪儿——使用Address属性获取单元格地址
详细讲解了Address属性的语法及参数说明,演示了设置不同参数时所获取的地址形式。
通过示例演示了Range对象的Find方法,详细讲解了Find方法的语法和参数说明,并讲解了相关方法:FindNext方法和FindPrevious方法的使用及示例。(这些方法在代码中非常有用,值得花时间理解)
进一步完善前面文章中的学生管理系统:使用了动态名称来定义数据有效性,从而实时更新数据,然后利用Find方法查找指定的数据内容并自动填充相应单元格。
43.快速定位到特定的单元格——SpecialCells方法
详细讲解“定位条件”对话框中的选项在VBA代码中的实现,即SpecialCells方法的语法及参数说明,给出了一个示例:查找最后的单元格。
讲解了将不同的区域组合成一个区域的Union方法,给出了一个示例:查找并获取工作表中指定内容的所有单元格。
讲解了能够获取单元格区域中重合部分的Intersect方法,给出了2个应用示例:①判断两个单元格区域是否有重叠、②用VBA实现保护单元格功能。
详细讲解了代表工作表中所选取的由一块块单元格区域组成的非连续区域的Areas集合对象的使用,给出了2个示例:①为不同单元格区域(或者根据条件)设置不同的背景色、②将工作表中的常量区域的背景色设置为红色(将Areas集合与SpecialCells方法结合使用,为我们操作特定区域提供了一种新思路)。此外,还补充讲解了如何表示单元格区域中的单元格。
47.获取整行或整列——EntireRow属性和EntireColumn属性
介绍了代表指定单元格所在的整行或整列的EntireRow属性和EntireColumn属性,给出了两个示例:隐藏空行、高亮显示当前单元格所在的行和列。
对前面讲解的找到想要的单元格的属性或方法进行小结,以助于读者加深对这些属性或方法的理解。
详细介绍了如何在VBA中实现Excel中最频繁使用的复制或剪切操作,即使用Copy方法和Cut方法,包括它们的语法及参数说明、使用情形等。给出了2个示例:①查找满足条件的数据并将相关数据复制到指定区域、②复制特定的数据到指定区域。
详细讲解了如何在VBA中使用Range对象的PasteSpecial方法进行粘贴操作,包括PasteSpecial方法的语法及详细参数说明。给出了5个示例:①只粘贴格式而不粘贴值、②只粘贴值、③粘贴值并保持列宽、④对粘贴的区域进行运算、⑤将行列转置。同时,指出了使用粘贴时容易出错的2点陷阱。
详细讲解了VBA中实现数据替换的Replace方法,包括该方法的语法及详细的参数说明,并给出了2个示例:①用不同的值同时替换不同的区域、②替换格式(FindFormat属性和ReplaceFormat属性)。
详细讲解了在VBA中实现自动筛选功能的AutoFilter方法,包括该方法的语法及详细的参数说明,并提供了6个有用的示例:①移除自动筛选提供的下拉箭头、②一次执行多个列字段的筛选、③复制筛选结果、④删除筛选出的数据(AutoFilterMode属性、Delete方法)、⑤根据当前单元格内容筛选数据、⑥根据当前单元格内容实时筛选数据并将数据粘贴到指定位置。
详细讲解了在VBA中实现高级筛选功能的AdvancedFilter方法,包括不同情形下的筛选技巧、AdvancedFilter方法的语法及参数说明,并提供了5个实用的技巧示例:①获取不重复值、②获取两列或多列组合后的不重复值、③根据条件区域筛选、④设置逻辑条件筛选(不同组合代表的逻辑、使用公式作为筛选条件)、⑤找出两列中不相同的内容(Clear方法)。
详细讲解了VBA中Sort方法的语法及参数说明,提供了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函数)、②快速填充单元格区域中的空单元格、③查找数据并计算(公式中有变量时的正确书写方式)。
讲解了在VBA中实现自动填充单元格的AutoFill方法,包括语法及参数说明,并提供了6个实用技巧示例:①使用代码在列中输入序号、②自动更新列中的序号、③按自定义列表填充、④自动填充月份、⑤自动填充工作日、⑥自动填充公式。
详细讲解了VBA中实现单元格向下填充的FillDown方法,提供了2个示例:①自动填充公式、②用空单元格上方的单元格数据填充单元格区域中的空单元格,并介绍了相关的FillUp方法、FillLeft方法、FillRight方法。
详细讲解了在VBA中实现合并单元格操作的Merge方法,包括其语法和参数说明,介绍了相关的方法和属性:UnMerge方法、MergeArea属性、MergeCells属性。提供了3个应用示例:①判断单元格是否为合并单元格并取消单元格合并、②判断单元格是否包含在合并单元格区域、③合并内容相同的单元格(与AdvancedFilter方法结合、DisplayAlerts属性)。
集中介绍了Range对象与单元格尺寸和位置相关的属性和方法:ColumnWidth属性、RowHeight属性、UseStandardHeight属性、UseStandardWidth属性、Width属性、Height属性、Left属性、Top属性,以及AutoFit方法。提供了5个应用示例:①设置所选区域的列宽为所在列中最大列的列宽、②获取单元格的行高、③设置输入行行高的最小值、④恢复工作表中行高列宽的标准尺寸、⑤在工作表单元格中添加组合框(DropDown对象)。
概要地介绍了设置单元格格式的对象、属性和方法:Font对象、Interior对象、Border对象、BordersAround方法、HorizontalAlignment属性、VerticalAlignment属性、Orientation属性、WrapText属性、ShrinkToFit属性、Justify方法、Style属性。提供了几段代码:①列出xlPattern常量表示的图案、②列出颜色面板中的颜色及索引值、③列出xlBordersIndex常量对应的边框、④列出边框线条型式。
介绍了在VBA中设置或者获取数字格式的NumberFormat属性及相关代码。列举了5个示例:①单元格数值VS.单元格文本值、②获取单元格数字格式、③统计单元格区域中某数字格式出现的次数、④将所选单元格区域中的电话号码设置为指定格式、⑤替换格式。
讲解在VBA中实现单元格批注的一系列操作,包括设置批注的相关属性和方法:AddComment方法、Comment属性、Visible属性、Text方法、ClearComments方法、Author属性、Shape属性、Previous属性、Next属性、Delete方法。给出了3个示例:①添加单元格批注、②获取单元格批注、③在单元格批注中放置图片。
主要介绍Range对象关于名称的属性和方法,为进一步理解名称及其应用打下基础。包括Range对象的Name属性、CreateNames方法、ApplyNames方法、ListNames方法。给出了5个示例:①列出工作簿中的所有命名区域的名称、②对命名区域进行格式化操作、③以命名区域为基准移动区域、④以命名区域为基准扩展区域、⑤遍历命名区域。
主要介绍前面系列文章中还没有讲解的Range对象的一些属性和方法:Insert方法、Delete方法、Clear方法系列、CopyPicture方法、CurrentArray属性、Characters属性、Item属性、Next属性、Previous属性、Errors属性、Calculate方法、Validation属性、FormatConditions属性,给出了相应的图文对照。
您觉得以上关于Range对象的属性和方法的介绍还有遗漏的吗?可以更简单些吗?形式还可以更生动活泼些吗?
欢迎您在下面留言。
本文及文中介绍的30多篇文章均首发于[ 完美Excel ]微信公众号:excelperfect。