新四季網

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

2023-05-18 01:02:03 2

技巧 單元格格式操作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所示。

圖 111 調色板中顏色的編號

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

常量

描述

xlUnderlineStyleNone

-4142

xlUnderlineStyleSingle

2

單下劃線

xlUnderlineStyleDouble

-4119

雙下劃線

xlUnderlineStyleSingleAccounting

4

會計用單下劃線

xlUnderlineStyleDoubleAccounting

5

會計用雙下劃線

表格 111 XlUnderlineStyle常量

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

圖 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所示。

圖 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所示。

圖 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所示。

圖 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 靈活設置單元格的行高列寬

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了