首頁 > 科技

Excel 如何按單元格顏色和字型查詢,教你一個很特別的技巧

2021-08-16 03:11:02

Excel表格中查詢內容,通常以單元格值的形式來進行查詢,如果想以單元格的顏色來到查詢,如何實現呢?

看完本節內容你就明白了。

Excel中有查詢對話方塊,這裡不做介紹,很明顯,看到的內容並沒有多麼難學。

接下來查詢對話方塊背後的程式碼,進行一下解釋學習。

首先要認識一個屬性:FindFormat

這個屬性是Application物件下的一個屬性,其功能就是設定查詢的格式。

也就是說,想要查詢什麼顏色的單元格或什麼字型字號的單元格,進行定義。

如下圖所示,做了一個示例,查詢藍色背景的單元格,字號為12,字型為" 宋體"

既然是查詢,那就要用到一個查詢方法:Find()

這個方法有很多參數,前面的文章有介紹,可以找一下看具體用法。下面的示例中也有相關內容。

其中有一個參數是否和FindFormat屬性有關。

searchformat:=True

searchformat參數的意義:是否按查詢格式進行,設定為True,很顯然要按照設定的格式查詢,如果為False那是否。

上述就是重點,下面具體看程式碼:

Option Explicit

Private Sub CommandButton1_Click()

Dim FindStyleObj As Object '定義查詢條件物件

Set FindStyleObj = Application.FindFormat

With FindStyleObj '定義查詢的條件

.Interior.Color = QBColor(9) '查詢背景顏色

.Font.Size = 12 '查詢字號為12

.Font.Name = "宋體"

End With

Dim cell As Range, cellAddress As String, r As Range

Set cell = ActiveSheet.UsedRange.Find(what:="*", _

searchorder:=xlByRows, searchformat:=True) '查詢並返回單元格

If cell Is Nothing Then MsgBox "什麼都沒有找到!": Exit Sub

cellAddress = cell.Address '儲存第一個找到單元格地址

Set r = cell '設定第一個單元格

Do While Not cell Is Nothing

Set r = Application.Union(r, cell) '組合找到的確單元格

Set cell = ActiveSheet.UsedRange.Find(what:="*", _

after:=cell, searchorder:=xlByColumns, searchformat:=True) '查詢並返回單元格

If cell.Address = cellAddress Then Exit Do '如果返回到第一個查到的單元格就退出查詢

DoEvents

Loop

r.Select

MsgBox "找到了如下單元格: " & r.Address

Dim sStyle As String

sStyle = "搜尋條件:" & VBA.vbCrLf & _

"背景顏色值為:" & _

FindStyleObj.Interior.Color & _

VBA.vbCrLf & "字號大小為:" & FindStyleObj.Font.Size

MsgBox sStyle '輸出查詢條件

FindStyleObj.Clear '清除查詢條件

Set FindStyleObj = Nothing

End Sub

程式碼就不逐行介紹了,都要有註釋,如果不懂,那說明不適合本階段的學習,收藏後再慢慢學習應用。

別看程式碼有點多,實際上重要的內容就幾行,如find()函數和Application.FindFormat。

Application.FindFormat可以返回一個CellFormat物件,此物件可設定查詢單元格的屬性。雖然在程式碼中沒有明確體現,但是有一個行就是這個方法實現的。

Set FindStyleObj = Application.FindFormat

FindStyleObj就是一個CellFormat物件。

單元格查詢是一個很實用的功能,如果按照不同顏色或字型進行查詢,那麼可以實現一些特別的確功能。

前提是要首先對錶格進行了一些單元格設定之後,不然什麼也不找到就毫無意義了。

歡迎關注、收藏

---END---


IT145.com E-mail:sddin#qq.com