wxiaow

V1

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
V1

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