VBA常用技巧(8)

2019-01-12 10:56

VBA常用技巧解析

图 11-3 设置单元格内部格式

11-3 为单元格区域添加边框

我们为单元格区域添加边框时往往通过录制宏获取代码,但宏录制器生成的代码分别设置单元格区域的每个边框,因此代码多且效率低。使用Range对象的Borders集合可以快速的对单元格区域的每个边框应用相同的格式,而Range对象的BorderAround方法则可以快速地为单元格区域添加一个外边框,如下面的代码所示。

#001 Sub AddBorders() #002 Dim rng As Range

#003 Set rng = Range(\#004 With rng.Borders

#005 .LineStyle = xlContinuous #006 .Weight = xlThin #007 .ColorIndex = 5 #008 End With

#009 rng.BorderAround xlContinuous, xlMedium, 5 #010 Set rng = Nothing #011 End Sub

代码解析:

AddBorders过程为单元格区域B4:G10设置内部统一边框并添加一个加粗外边框。 第4行到第8行代码使用Borders属性引用单元格区域的Borders集合,其中第5行代码设置其边框样式线条的样式,第6行代码设置边框线条的粗细,第7行代码设置边框的颜色。

应用于Range对象的Borders集合代表Range对象的4个边框(左边框、右边框、顶部边框和底部边框)的4个Border对象组成的集合,这4个边框既可单独返回,也可作为一个组同时返回。

第9行代码使用BorderAround方法为单元格区域添加一个加粗外边框。

应用于Range对象的BorderAround方法向单元格区域添加整个区域的外边框,并设

36

VBA常用技巧解析

置该边框的相关属性,其语法如下:

BorderAround(LineStyle, Weight, ColorIndex, Color)

其中LineStyle参数设置边框线条的样式,Weight参数设置边框线条的粗细,ColorIndex 设置边框颜色,Color参数以RGB值指定边框的颜色。

注意 指定Color参数可以设置颜色为当前调色板之处的其它颜色,不能同时指定ColorIndex参数和Color参数。

运行AddBorders过程,效果如图 11-4所示。

图 11-4 设置单元格区域边框

如果需要在单元格区域中应用多种边框格式,则需分别设置各边框格式,如下面的代码所示。

#001 Sub BordersDemo() #002 Dim rng As Range

#003 Set rng = Sheet2.Range(\#004 With rng.Borders(xlInsideHorizontal) #005 .LineStyle = xlDot #006 .Weight = xlThin #007 .ColorIndex = 5 #008 End With

#009 With rng.Borders(xlInsideVertical) #010 .LineStyle = xlContinuous #011 .Weight = xlThin #012 .ColorIndex = 5 #013 End With

#014 rng.BorderAround xlContinuous, xlMedium, 5 #015 Set rng = Nothing #016 End Sub

代码解析:

37

VBA常用技巧解析

BordersDemo过程代码为单元格区域内部边框在水平和垂直方向上应用不同格式,并为区域添加一个加粗外边框。

Borders(index)属性返回单个Border对象,其Index参数取值可为表格 11-2所列的XlBordersIndex常量之一:

常量 xlDiagonalDown xlDiagonalUp xlEdgeBottom xlEdgeLeft xlEdgeRight xlEdgeTop xlInsideHorizontal xlInsideVertical 值 5 6 9 7 10 8 12 11 描述 斜下边框 斜上边框 底部边框 左边框 右边框 顶部边框 内部水平 内部垂直 表格 11-2 XlBordersIndex常量

运行BordersDemo过程效果如图 1-1所示。

图 11-5 应用不同格式内部边框

11-4 灵活设置单元格的行高列宽

一般情况下单元格的行高列宽都是以磅为单位进行设置的,也可以使用英寸和厘米计量单位设置单元格的行高列宽,如下面的代码 所示。

#001 Sub RngToPoints() #002 With Range(\

#003 .RowHeight = Application.CentimetersToPoints(2) #004 .ColumnWidth = Application.CentimetersToPoints(1.5) #005 End With

#006 With Range(\

#007 .RowHeight = Application.InchesToPoints(1.2)

38

VBA常用技巧解析

#008 .ColumnWidth = Application.InchesToPoints(0.3) #009 End With #010 End Sub

代码解析:

RngToPoints过程以英寸和厘米计量单位设置单元格的行高列宽。

第3、4行代码使用CentimetersToPoints方法以厘米为计量单位设置A1单元格的行高列宽。CentimetersToPoints方法将计量单位从厘米转换为磅(一磅等于 0.035 厘米),语法如下:

expression.CentimetersToPoints(Centimeters)

参数expression是必需的,返回一个Application对象。 参数Centimeters是必需的,指定要转换为磅值的厘米值。

第5、6行代码使用InchesToPoints方法以英寸为计量单位设置A2单元格的行高列宽。InchesToPoints方法将计量单位从英寸转换为磅,语法如下:

expression.InchesToPoints(Inches)

参数expression是必需的,返回一个Application对象。 参数Inches是必需的,指定要转换为磅值的英寸值。 运行RngToPoints过程结果如图 11-6所示。

图 11-6 灵活设置单元格的行高列宽

技巧12 单元格中的数据有效性

12-1

在单元格中建立数据有效性

在单元格中建立数据有效性可以使用Add方法,如下面的代码所示。

#001 Sub Validation()

39

VBA常用技巧解析

#002 With Range(\#003 .Delete

#004 .Add Type:=xlValidateList, _ #005 AlertStyle:=xlValidAlertStop, _ #006 Operator:=xlBetween, _ #007 Formula1:=\#008 End With #009 End Sub

代码解析:

使用Add方法在A1:A10单元格中建立数据有效性。 第3行代码删除已建立的数据有效性,防止代码运行出错。

第4行到第7行代码使用Add方法建立数据有效性。应用于Validation对象的Add方法的语法如下:

expression.Add(Type, AlertStyle, Operator, Formula1, Formula2)

参数expression是必需的,返回一个Validation对象。 参数Type是必需的,数据有效性类型。 参数AlertStyl是可选的,有效性检验警告样式。 参数Operator是可选的,数据有效性运算符。

参数Formula1是可选的,数据有效性公式的第一部分。

参数Formula2是可选的,当Operator为xlBetween或xlNotBetween时,数据有效性公式的第二部分(其他情况下,此参数被忽略)。

Add 方法所要求的参数依有效性检验的类型而定,如表格 12-1所示。

数据有效性类型 xlValidateCustom 参数 Formula1 必需,忽略 Formula2。Formula1 必须包含一个表达式,数据项有效时该表达式取值为 True,而数据项无效时取值为 False。 xlInputOnly xlValidateList 能使用 AlertStyle、Formula1 或 Formula2 参数。 Formula1 必需,忽略 Formula2。Formula1 必须包含以逗号分隔的取值列表,或引用此列表的工作表。 xlValidateWholeNumberxlValidateDatexlValidateDecimalxlValidateTextLength xlValidateTime 、、、或 必须指定 Formula1 或 Formula2 之一,或两者均指定。 表格 12-1 数据有效性类型

40


VBA常用技巧(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:党的群众路线教育实践活动调研报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: