tft每日頭條

 > 生活

 > excel中vba操作單元格

excel中vba操作單元格

生活 更新时间:2024-11-20 14:21:17
技巧 單元格格式操作1-1 單元格字體格式設置

在VBA中可以對單元格的字體格式進行各種設置,如下面的代碼所示。

#001 Public Sub RngFont()

#002 With Range("A1").Font

#003 .Name = "華文彩雲"

#004 .FontStyle = "Bold"

#005 .Size = 18

#006 .ColorIndex = 3

#007 .Underline = 2

#008 End With

#009 End Sub

代碼解析:

RngFont過程對單元格A1的字體格式進行設置。

其中第3行代碼設置字體為“華文彩雲”,應用于Font對象的Name屬性返回或設置對象的名稱。

第4行代碼設置字體為加粗,FontStyle屬性返回或設置字體樣式。設置為“Bold” 加粗字體,設置為“Italic”傾斜字體,也可以設置成“Bold Italic”。

第5行代碼設置字體的大小為18磅,Size屬性返回或設置字體大小。

第6行代碼設置字體的顔色為紅色,應用于Font對象的ColorIndex屬性返回或設置字體的顔色,該顔色可指定為當前調色闆中顔色的編号,如圖 111所示。

excel中vba操作單元格(ExcelVBA常用技巧08-單元格格式操作)1

圖 111 調色闆中顔色的編号

第7行代碼設置字體為單下劃線類型,Underline屬性返回或設置應用于字體的下劃線類型,可為表格 111所列的XlUnderlineStyle常量之一。

常量

描述

xlUnderlineStyleNone

-4142

xlUnderlineStyleSingle

2

單下劃線

xlUnderlineStyleDouble

-4119

雙下劃線

xlUnderlineStyleSingleAccounting

4

會計用單下劃線

xlUnderlineStyleDoubleAccounting

5

會計用雙下劃線

表格 111 XlUnderlineStyle常量

運行RngFont過程結果如圖 112所示。

excel中vba操作單元格(ExcelVBA常用技巧08-單元格格式操作)2

圖 112 單元格字體設置

1-2 設置單元格内部格式

設置單元格的Interior屬性可以對單元格的内部格式進行設置,如下面的代碼所示。

#001 Sub RngInterior()

#002 With Range("A1").Interior

#003 .ColorIndex = 3

#004 .Pattern = xlPatternCrissCross

#005 .PatternColorIndex = 6

#006 End With

#007 End Sub

代碼解析:

RngInterior過程對A1單元格的内部格式進行設置。

第2行代碼使用Interior屬性返回單元格對象的内部。

第3行代碼設置單元格邊框内部的顔色為紅色。應用于Interior對象的ColorIndex屬性返回或設置邊框内部的顔色,可指定為如圖 111所示的當前調色闆中顔色的編号或為XlColorIndex 常量之一:xlColorIndexAutomatic (自動填充)、xlColorIndexNone (無内部填充)。

第4行代碼設置單元格設置内部圖案為十字圖案。應用于Interior對象的Pattern屬性返回或者設置内部圖案。

第5行代碼設置單元格設置内部圖案的顔色為黃色。應用于Interior對象的PatternColorIndex屬性返回或設置内部圖案的顔色,可指定為如圖 111所示的當前調色闆中顔色的編号XlColorIndex常量之一:xlColorIndexAutomatic (自動填充)、xlColorIndexNone (無内部填充)。

運行RngInterior過程結果如圖 113所示。

excel中vba操作單元格(ExcelVBA常用技巧08-單元格格式操作)3

圖 113 設置單元格内部格式

1-3 為單元格區域添加邊框

我們為單元格區域添加邊框時往往通過錄制宏獲取代碼,但宏錄制器生成的代碼分别設置單元格區域的每個邊框,因此代碼多且效率低。使用Range對象的Borders集合可以快速地對單元格區域的每個邊框應用相同的格式,而Range對象的BorderAround方法則可以快速地為單元格區域添加一個外邊框,如下面的代碼所示。

#001 Sub AddBorders()

#002 Dim rng As Range

#003 Set rng = Range("B4:G10")

#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方法向單元格區域添加整個區域的外邊框,并設置該邊框的相關屬性,其語法如下:

BorderAround(LineStyle, Weight, ColorIndex, Color)

其中LineStyle參數設置邊框線條的樣式,Weight參數設置邊框線條的粗細,ColorIndex 設置邊框顔色,Color參數以RGB值指定邊框的顔色。

注意 指定Color參數可以設置顔色為當前調色闆之處的其它顔色,不能同時指定ColorIndex參數和Color參數。

運行AddBorders過程,效果如圖 114所示。

excel中vba操作單元格(ExcelVBA常用技巧08-單元格格式操作)4

圖 114 設置單元格區域邊框

如果需要在單元格區域中應用多種邊框格式,則需分别設置各邊框格式,如下面的代碼所示。

#001 Sub BordersDemo()

#002 Dim rng As Range

#003 Set rng = Sheet2.Range("B4:G10")

#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

代碼解析:

BordersDemo過程代碼為單元格區域内部邊框在水平和垂直方向上應用不同格式,并為區域添加一個加粗外邊框。

Borders(index)屬性返回單個Border對象,其Index參數取值可為表格 112所列的XlBordersIndex常量之一:

常量

描述

xlDiagonalDown

5

斜下邊框

xlDiagonalUp

6

斜上邊框

xlEdgeBottom

9

底部邊框

xlEdgeLeft

7

左邊框

xlEdgeRight

10

右邊框

xlEdgeTop

8

頂部邊框

xlInsideHorizontal

12

内部水平

xlInsideVertical

11

内部垂直

表格 112 XlBordersIndex常量

運行BordersDemo過程效果如圖 11所示。

excel中vba操作單元格(ExcelVBA常用技巧08-單元格格式操作)5

圖 115 應用不同格式内部邊框

1-4 靈活設置單元格的行高列寬

一般情況下單元格的行高列寬都是以磅為單位進行設置的,也可以使用英寸和厘米計量單位設置單元格的行高列寬,如下面的代碼 所示。

#001 Sub RngToPoints()

#002 With Range("A1")

#003 .RowHeight = Application.CentimetersToPoints(2)

#004 .ColumnWidth = Application.CentimetersToPoints(1.5)

#005 End With

#006 With Range("A2")

#007 .RowHeight = Application.InchesToPoints(1.2)

#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過程結果如圖 116所示。

圖 116 靈活設置單元格的行高列寬

excel中vba操作單元格(ExcelVBA常用技巧08-單元格格式操作)6

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved