03 属性和方法¶
一、常用属性¶
在之前的介绍中,我们已经了解了如何定义一个VBA过程,也明白了三大对象类型和11大数值类型,本期我们主要关注EXCEL中用到的主要属性,首先是常用属性
主要包括:Count(数量),Name(名称),path(路径),Address(地址),Row(行号),Column(列号),FullName(路径+文件名称,也就是完整路径)等
这里需要注意的是 path 是不包含文件名的,比如 C:\Users\22330\Desktop\EXCEL\VBA,而fullname会跟上文件名
另外还要重点提一下Value 和 text的区别:
Value:返回值,如果单元格是错误值则会报错,如果是正常值则返回正常值text:返回文本,如果单元格是错误值则返回显示的错误文本(如 #div/0!,#value! 等),不会报错
二、颜色属性¶
在EXCEL中主要有两种不同的上色方式,一种是通过color指定,配合此color属性进行使用的有直接通过vb接颜色,比如vbBlack,vbRed等,也可以直接用十进制RGB值代替,详细可以参考下表
| VBA常量名 | 十进制RGB值 | 颜色 | VBA常量名 | 十进制RGB值 | 颜色 |
|---|---|---|---|---|---|
| vbBlack | 0 | 黑色 | vbWhite | 16777215 | 白色 |
| vbRed | 255 | 红色 | vbGreen | 65280 | 绿色 |
| vbYellow | 65535 | 黄色 | vbBlue | 16711680 | 蓝色 |
| vbMagenta | 16711935 | 洋红 | vbCyan | 16776960 | 青色 |
| vbGray | 8421504 | 中灰 | vbDarkGray | 4210752 | 深灰 |
| vbLightGray | 12632256 | 浅灰 | vbOrange | 33023 | 橙色 |
| vbPurple | 8388736 | 紫色 | vbBrown | 33023 | 棕色 |
| vbPink | 13353215 | 粉红 | vbDarkRed | 128 | 暗红 |
| vbDarkGreen | 32768 | 暗绿 | vbDarkYellow | 32896 | 暗黄 |
| vbDarkBlue | 8388608 | 深蓝 | vbDarkCyan | 8421376 | 深青 |
| vbDarkMagenta | 8388736 | 深洋红 |
同样也可以直接使用RGB进行定义,如下面所示的写法都是支持的
除了使用color属性进行定义,也可以使用colorindex实现,写法为:
主要我们给EXCEL表格中两种情况配色,一个是单元格的底色,一个是字体的颜色,如果是前者,我们使用Interior.Color,而对于后者,我们使用Font.Color,具体用法可以参考底下的代码:
三、可操作属性¶
3.1 常见可操作属性¶
什么叫做可操作属性,顾名思义,就是我们可以修改属性的值,修改它的具体呈现方式,比如在worksheet中,我们就可以根据visible属性操作其是否隐藏:
- 当为-1或者1的时候,为显示状态
- 0的时候为隐藏,和手动的隐藏类似,可以通过手动取消隐藏重新显示出来
- 2的时候为绝对隐藏,只能通过代码的方式取消隐藏
rowheight: 调整行高,可以搭配 rows 进行使用,选取多行统一调整
- columnwidth: 调整列宽,可以搭配 columns 进行使用,选取多列统一调整
另外还可以通过autofit 方法实现自适应的行高列宽调整
3.2 单元格边框属性¶
对于单元格边框的调整,主要需要区分 位置 、linestyle、weight和颜色这四步,表达形式为:borders(位置).属性 = XXX,后面的属性可以跟linestyle、weight和颜色,具体的位置主要可以分为以下这些,如果是所有边框就省略位置不写:
| VBA常量名 | 含义 | VBA常量名 | 含义 |
|---|---|---|---|
| xlEdgeLeft | 左框线 | xlEdgeRight | 右框线 |
| xlEdgeTop | 上框线 | xlEdgeBottom | 下框线 |
| xlInsideVertical | 内部垂直框线 | xlInsideHorizontal | 内部水平框线 |
而对于linestyle,可以分为以下这些,打了括号写了数字的表示,可以用数字代替这个常量,比如 1 就代表是 实线
| VBA常量名 | 含义 | VBA常量名 | 含义 |
|---|---|---|---|
| xlThin | 细线 | xlThick | 粗线 |
| xlDot | 点线(3) | xlDash | 虚线 (2) |
| xlContinuous | 实线(1) | xlNone | 无边框(0) |
颜色的设置和之前讲的一样,而weight的范围在 1≤x<5 中,设置的时候要注意
3.3 字体常用属性¶
除了上面我们提到的可以通过color和colorindex对字体颜色进行赋值,VBA还支持设置字体的其他格式,比如name(字体名称),size(大小),bold(粗体),italic(斜体),underline(下划线),strikethrough(删除线)
四、VBA常用方法¶
4.1 工作簿和工作表常用方法¶
对于工作簿和工作表,常见的就是
activate: 激活某个工作表,常见于需要切换ActiveSheet的情况open:打开某个工作簿,给定路径就可以打开Delete: 删除某个工作表常用,删除的时候表格会提示,如果要隐藏此提示,可以用Application.displayalerts = false来进行提示消息的隐藏,执行完操作后,再将状态改成Trueadd: 可以新建工作簿或者工作表,如果是工作表,可以通过after参数指定其插入的位置select:选取某张表,也可以同时选中多张表,但是不可以选中隐藏的表move: 移动某张表,可以通过before和after参数指定具体的位置close:关闭工作簿文件,可以通过 0 指定关闭时不保留修改,1 表示保留修改
对工作簿和工作表进行了若干修改和操作之后,我们会将其进行保存或者另存,这个部分涉及的主要方法包括以下三种:
save:保存,如果是新建的工作簿,不给定路径,就是默认放在用户文档文件夹下,例如C:\Users\22330\Documents,而如果是从某个文件夹下打开的工作簿,则默认保存到原路径saveas:如果我们要指定保存的路径,可以使用这个方法,后面跟上路径,这个是对源文件进行保存savecopyas:新建一个副本,并跟上路径,保存为副本文件kill:删除指定的文件
4.2 单元格常用方法¶
对于单元格,常用的有以下方法:
activate:激活某个单元格copy:复制,可以直接这样写range("a1").copy range("b1"),也可以结合下方的pastespecial方法来选择需要粘贴的pastespecial:后面跟paste参数,用于指定需要粘贴的是什么xlPasteValues:仅粘贴值xlPasteFormulas:仅粘贴公式xlPasteFormats:仅粘贴格式xlPasteColumnWidths:仅粘贴列宽xlPasteComments:仅粘贴注释
delete:删除某个单元格,可以通过shift参数指定单元格的调整方式,有xlToLeft和xlUp两种常见方式clear: 清空,分为ClearContents(清空内容),ClearFormats(格式),ClearComments(批注)和clear(全部)
end方法,除此之外还有:
UsedRange: 快速获取当前sheet已经被修改过的表格区域,是一个矩形区域CurrentRegion:获取某个单元格附近的连续区域,类似于选中一个单元格,然后按Ctrl+A键
| VBA代码 | 类似于快捷键 | 功能描述 |
|---|---|---|
End(xlDown) |
Ctrl + ↓ |
从当前单元格向下找到最后一个非空单元格 |
End(xlUp) |
Ctrl + ↑ |
从当前单元格向上找到第一个非空单元格 |
End(xlToLeft) |
Ctrl + ← |
从当前单元格向左找到第一个非空单元格 |
End(xlToRight) |
Ctrl + → |
从当前单元格向右找到最后一个非空单元格 |
本期就帮大家系统整理了一些常用属性和方法,如果忘记的时候可以回来查阅,不需要把每个值都记得清清楚楚,只需要知道大概的用法即可