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

我们在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方法

详细讲解了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函数)、②快速填充单元格区域中的空单元格③查找数据并计算(公式中有变量时的正确书写方式)。

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属性,给出了相应的图文对照。

您觉得以上关于Range对象的属性和方法的介绍还有遗漏的吗?可以更简单些吗?形式还可以更生动活泼些吗?

欢迎您在下面留言。

本文及文中介绍的30多篇文章均首发于[ 完美Excel ]微信公众号:excelperfect。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容