
wxiaow
2023/01/03阅读:20主题:兰青
单单元格蕴含的设计哲学
单元格的设计哲学
上一篇介绍了连续单元格区域框选的问题,但实际工作中,往往需要对多个非连续单元格进行同时选定,通常情况下会使用Ctrl + 鼠标左键
方式进行操作,而在使用VBA进行编程的情况下,则就未必有那么直观的点选操作了,这时需要对其鼠标点选的底层原理进行剖析,其点选原理非常类似于韦恩图的集合操作,即交集、并集等。
选择多个单元格合并区域
连续选定多个单元格或者单元格区域并获取其 合并区域,其实就是对多个单元格集合求 并集,即{B4:B9, E4:F6}∪{D11:E14,E8} = {B4:B9,E4:F6,D11:E14,E8}
,其中E8
代表单元格,B4:B9
代表单元格区域,以此类推。


Range格式
Range("B4:B9,E4:F6,D11:E14,E8").Select
注:
Range后面的括号内的参数 是 一个字符串,字符之间用逗号隔开, 千万不要把它写成
Range("B4:B9", "E4:F6", "D11:E14", "E8").Select
[]格式
[B4:B9,E4:F6,D11:E14,E8].Select
Union格式
Union(
Range("B4:B9"), Range("E4:F6"), Range("D11:E14"), Range("E8")
).Select
注:
Union方法像一支强烈的粘合剂,将不连续的多个单元格区域粘在一起,可以同时对其进行操作。
选择多个单元格交叉区域
依次选定多个单元格区域并获取其 交叉区域, 其实就是对多个单元格集合求交集,即{D4:D12} ∩ {C6:E9} = {D6:D9}
,其中D4:D12
代表单元格区域,以此类推。


Range格式
Range("D4:D12 C6:E9").Select
注:
Range后面的括号内的参数 是 一个字符串,字符之间用空格隔开, 千万不要把它写成
Range("B4:B9", "E4:F6", "D11:E14", "E8").Select
[]格式
[D4:D12 C6:E9].Select
选择单元格外接的矩形区域
单元格外接的矩形区域,什么是单元格外接的矩形区域呢?
外接矩形有点像求两个数的最小公倍数,就是寻找一个矩形,该矩形能够将所选中的单元格区域全包含在内。


Range格式
Range("D4:D12", "C6:E9").Select
注:
Range后面的括号内的参数 不是 一个字符串,字符之间用空格隔开, 千万不要把它写成
Range("D4:D12, C6:E9").Select
选择工作表已用单元格区域
UsedRange
有点类似外接矩形的概念,UsedRange
属性返回的工作表中所有已经使用的单元格围成的矩形区域,而不管这些区域间是否有空行、空列或空单元格。


AvtivateSheet.UsedRange.Select '选中活动工作表中已使用的单元格区域
选择工作表当前单元格区域
CurrentRegion
属性返回当前区域,即以空行和空列的组合为边界的区域。


Range("D11").CurrentRegion.Select
注:
当前区域(CurrentRegion)是指以空行和空列分割的单元格区域,注意与工作表已用单元格区域区分(UsedRange)。一个是Region。表示区域,一个是Range,表示单元格,有区别的。
UsedRange
属性返回指定工作表中已使用的单元格围成的矩形区域,而不管该区域中是否有空行、空列或空单元格;
CurrentRegion
属性返回当前区域,这个区域总是小于或等于UsedRange
属性返回的区域。
作者介绍

wxiaow
把学的写出来,是方法,也是一种态度。