每個人都應該知道的 Excel VBA 的有用範圍對象屬性

每個人都應該知道的 Excel VBA 的有用範圍對象屬性

一個 Range 對像有幾十個屬性。您可以在接下來的 12 個月中不間斷地編寫 VBA 程序,並且永遠不要全部使用它們。在這裡,您可以簡要概述一些最常用的 Excel VBA 範圍屬性。有關完整的詳細信息,請參閱 VBE 中的幫助系統。(查看這些附加資源以獲取有關 Excel VBA 的幫助。)

某些 Excel VBA 範圍屬性是只讀屬性,這意味著您的代碼可以查看它們的值但不能更改它們(“查看,但不要觸摸”)。例如,每個 Excel VBA Range 對像都有一個 Address 屬性,用於保存範圍的地址。您可以訪問此只讀屬性,但無法更改它 — 仔細想想,這是非常有意義的。

順便說一下,下面的示例通常是陳述而不是完整的過程。如果您想嘗試其中任何一個(您應該這樣做),請創建一個 Sub 過程來執行此操作。此外,許多這些VBA 語句只有在工作表是活動表時才能正常工作。

Excel VBA:值屬性

Value 屬性表示單元格中包含的值。這是一個讀寫屬性,因此您的 VBA 代碼可以讀取或更改該值。

以下語句顯示一個消息框,顯示 Sheet1 上單元格 A1 中的值:

MsgBox Worksheets("Sheet1").Range("A1").Value

您只能讀取單單元格 Range 對象的 Value 屬性是合理的。例如,以下語句會生成錯誤:

MsgBox Worksheets("Sheet1").Range("A1:C3").Value

但是,您可以更改任意大小範圍的 Value 屬性。以下語句在範圍內的每個單元格中輸入數字 123:

工作表(“Sheet1”)。範圍(“A1:C3”)。值 = 123

Value 是 Excel VBA Range 對象的默認屬性。換句話說,如果省略 Range 的屬性,Excel 將使用其 Value 屬性。以下語句都在活動工作表的單元格 A1 中輸入值 75:

範圍(“A1”)。值 = 75
範圍(“A1”)= 75

Excel VBA:文本屬性

Text 屬性返回一個字符串,該字符串表示單元格中顯示的文本 — 格式化值。Text 屬性是只讀的。假設單元格 A1 包含值 12.3 並被格式化為顯示兩位小數和一個美元符號 ($12.30)。以下語句顯示一個包含 $12.30 的消息框:

MsgBox Worksheets("Sheet1").Range("A1").Text

但是下一條語句會顯示一個包含 12.3 的消息框:

MsgBox Worksheets("Sheet1").Range("A1").Value

如果單元格包含公式,則 Text 屬性返回公式的結果。如果單元格包含文本,則 Text 屬性和 Value 屬性始終返回相同的內容,因為文本(與數字不同)無法設置為以不同方式顯示的格式。

Excel VBA:計數屬性

Count 屬性返回一個範圍內的單元格數。它計算所有單元格,而不僅僅是非空白單元格。正如您所期望的那樣,Count 是一個只讀屬性。以下語句訪問範圍的 Count 屬性並在消息框中顯示結果 (9):

MsgBox Range("A1:C3").Count

Excel VBA:列和行屬性

Column 屬性返回單個單元格區域的列號。它的助手 Row 屬性返回單個單元格區域的行號。兩者都是只讀屬性。例如,以下語句顯示 6,因為單元格 F3 位於第六列:

MsgBox Sheets("Sheet1").Range("F3").Column

下一個表達式顯示 3,因為單元格 F3 位於第三行:

MsgBox Sheets("Sheet1").Range("F3").Row

如果 Excel VBA Range 對象包含多個單元格,則 Column 屬性返回該區域中第一列的列號,而 Row 屬性返回該區域中第一行的行號。

不要將 Column 和 Row 屬性與 Columns 和 Rows 屬性混淆。Column 和 Row 屬性返回單個值。另一方面,Columns 和 Rows 屬性返回一個 Range 對象。“s”有什麼不同。

Excel VBA:地址屬性

Address 是一個只讀屬性,它將 Range 對象的單元格地址顯示為絕對引用(列字母前和行號前的美元符號)。以下語句顯示如下所示的消息框:

MsgBox Range(Cells(1, 1), Cells(5, 5)).地址

每個人都應該知道的 Excel VBA 的有用範圍對象屬性

此消息框顯示 5×5 範圍的 Address 屬性。

Excel VBA:HasFormula 屬性

如果單單元格區域包含公式,則 HasFormula 屬性(只讀)返回 True。如果單元格包含公式以外的內容(或為空),則返回 False。如果區域包含多個單元格,則僅當區域中的所有單元格都包含公式時,VBA 才返回 True,如果區域中的所有單元格都沒有公式,則返回 False。如果範圍包含公式和非公式的混合,則該屬性返回 Null。Null 是一種無人區:答案既不是 True 也不是 False,範圍內的任何單元格可能有也可能沒有公式。

當您使用可以返回 Null 的屬性時,您需要小心。更具體地說,唯一可以處理 Null 的數據類型是 Variant。

例如,假設單元格 A1 包含一個值,單元格 A2 包含一個公式。以下語句會產生錯誤,因為範圍不包含所有公式或所有非公式:

將公式測試調暗為布爾值
FormulaTest = Range("A1:A2").HasFormula

Boolean 數據類型只能處理 True 或 False。Null 會導致 Excel 報錯並顯示錯誤消息。要解決這種情況,最好的辦法是確保將 FormulaTest 變量聲明為 Variant 而不是布爾值。下面的示例使用 VBA 方便的 TypeName 函數(以及 If-Then-Else 構造)來確定 FormulaTest 變量的數據類型。如果範圍包含公式和非公式的混合,則消息框顯示混合!否則,它會顯示TrueFalse

子 CheckForFormulas()
  Dim FormulaTest 作為變體
  FormulaTest = Range("A1:A2").HasFormula
  如果 TypeName(FormulaTest) = "Null" Then
    MsgBox "混合!"
  別的
    MsgBox 公式測試
  萬一
結束子

Excel VBA: The Font property

A property can return an object. The Font property of an Excel VBA Range object is another example of that concept at work. The Font property returns a Font object.

A Font object, as you may expect, has many accessible properties. To change some aspect of a range’s font, you must first access the range’s Font object and then manipulate the properties of that object. This may be confusing, but perhaps this example will help.

The following statement uses the Font property of the Range object to return a Font object. Then the Bold property of the Font object is set to True. In plain English, this statement makes the cell display in boldface:

Range("A1").Font.Bold = True

事實是,您實際上並不需要知道您正在使用 Excel VBA Range 對像中包含的特殊 Font 對象。只要您使用正確的語法,它就可以正常工作。通常,使用宏記錄器記錄您的操作會告訴您有關正確語法的所有信息。

Excel VBA:內部屬性

這是返回對象的屬性的另一個示例。Range 對象的 Interior 屬性返回一個 Interior 對象(奇怪的名稱,但這就是它的名稱)。這種類型的對象引用與 Font 屬性的工作方式相同。

例如,以下語句更改 Range 對像中包含的 Interior 對象的 Color 屬性:

範圍(“A1”)。內部。顏色= 8421504

換句話說,此語句將單元格的背景更改為中灰色。那是什麼?你不知道8421504是中灰嗎?有關 Excel 美妙色彩世界的一些見解,請參閱附近的側邊欄“快速而骯髒的顏色底漆”。

Excel VBA:公式屬性

公式屬性表示單元格中的公式。這是一個讀寫屬性,因此您可以訪問它以查看單元格中的公式或將公式插入到單元格中。例如,以下語句在單元格 A13 中輸入 SUM 公式:

Range("A13").Formula = "=SUM(A1:A12)"

請注意,該公式是一個文本字符串,並用引號括起來。另請注意,與所有公式一樣,該公式以等號開頭。

如果公式本身包含引號,事情就會變得有點棘手。假設您要使用 VBA 插入此公式:

=SUM(A1:A12)&“商店”

此公式顯示一個值,後跟單詞Stores。為了使這個公式可以接受,您需要用兩個引號替換公式中的每個引號。否則,VBA 會感到困惑並聲稱存在語法錯誤(因為存在!)。所以這裡有一個語句,它輸入一個包含引號的公式:

Range("A13").Formula = "=SUM(A1:A12)&""Stores"""

順便說一下,即使單元格沒有公式,您也可以訪問單元格的公式屬性。如果單元格沒有公式,則公式屬性返回與其 Value 屬性相同的值。

如果您需要知道單元格是否有公式,請使用 HasFormula 屬性。

請注意,VBA “說”美國英語。這意味著要將公式放入單元格中,您必須使用 US 語法。如果您使用非英語版本的 Excel,請閱讀幫助系統中的 FormulaLocal 屬性。

Excel VBA:NumberFormat 屬性

NumberFormat 屬性表示 Range 對象的數字格式(表示為文本字符串)。這是一個讀寫屬性,因此您的 VBA 代碼可以檢查數字格式或更改它。以下語句將 A 列的數字格式更改為帶有兩位小數的百分比:

Columns("A:A").NumberFormat = "0.00%"

按照以下步驟查看其他數字格式的列表(更好的是,在執行此操作時打開宏記錄器):

激活工作表。

按 Ctrl+1 訪問“設置單元格格式”對話框。

單擊數字選項卡。

選擇自定義類別以查看和應用一些額外的數字格式字符串。


智能表9.1.1

智能表9.1.1

Smartsheet 是一個動態工作平台,可讓您管理專案、建立工作流程以及與團隊合作。

共享點

共享點

SharePoint 是一個基於 Web 的協作系統,它使用各種工作流程應用程式、「清單」資料庫和其他 Web 元件以及安全功能來控制業務群組的協同工作。

萬年曆1.0.38/1.0.36

萬年曆1.0.38/1.0.36

萬年日曆是一款手機上的日曆檢視應用程式,可協助您在手機上快速查看陰陽日期,從而安排您的重要工作。

微軟 Outlook 2021

微軟 Outlook 2021

Microsoft Outlook 是由 Microsoft Corporation 開發的商業和生產力應用程式。

點擊按鈕

點擊按鈕

ClickUp 是所有企業評價最高的生產力平台之一。Google、Booking.com、San Diego Padres 和 Uber 等大型企業都使用 ClickUp 來提高工作效率。

PDF-XChange 檢視器 2.5.322.10

PDF-XChange 檢視器 2.5.322.10

PDF 已成為閱讀、建立和傳送文字文件的常用格式。反過來,用於此類文件的程式數量也有所增加。PDF-XChange Viewer 是數量不斷增長的 PDF 檢視器之一。

阿帕契開放辦公室

阿帕契開放辦公室

Apache OpenOffice 提供了一整套可與 Microsoft 365 競爭的 Office 應用程序,尤其是 Excel、PowerPoint 和 Word。它允許您更有效地管理您的項目,並支援多種文件格式。

下載 iTaxviewer 1.8.7

下載 iTaxviewer 1.8.7

iTaxViewer軟體是當今最受歡迎的XML檔案讀取軟體。該軟體是用於讀取稅務總局 XML 格式電子報稅單的應用程式。

硝基 PDF 閱讀器

硝基 PDF 閱讀器

Nitro PDF Reader 是一款方便的 PDF 編輯器,涵蓋了大多數人每天使用 PDF 文件執行的所有基本任務。

福昕閱讀器12

福昕閱讀器12

Foxit Reader主要是一個PDF閱讀器,還允許您建立PDF文件、對其進行簽名、編輯以及添加註釋。它適用於作業系統,有 Microsoft Office 軟體包中各種程式的插件。