VBA系列 4 VBA中的物件和集合

2021-09-28 22:19:23 字數 1497 閱讀 8843

vba的物件是以分層的結構組織的,本節介紹excel中的物件和集合

關於集合

在vba裡邊有乙個重要概念,即集合。集合是一組屬於同一類的物件,集合 本身也是物件。如workbooks是當前開啟的所有workbook物件的集合; worksheets是包含在特定workbook物件中的所有worksheet物件的集合。可以處理物件所屬的整個結合或集合中某個單獨的物件。要引用集合中的某個物件 ,只需將這個物件的名稱或索引號放在集合名稱後面的括號中即可,如下所示:

worksheets(

"sheet1"

)

如果工作表sheet1是集合中的第乙個工作表,還可以使用下列方式加以引用:

worksheets(

1)

採用worksheet(2)可以引用workbook中的第二個工作表,如此類推。

還有乙個名為sheets的集合,它由工作簿中的多有工作表構成,而不管該工作表是普通工作表還是圖表工作表。如果工作表sheet1是工作簿中的第乙個工作表,可以採用如下形式加以引用:

sheets(

1)

物件的引用

在使用vba來引用某個物件的時候,通常必須通過用句點(就是通常所說的點運算子)連線物件名稱來限定物件。假如有兩個開啟的工作簿,而且它們都有乙個名為sheet1的 工作表時,該如何處理呢?解決辦法是通過新增物件的容器來限定物件的引用,如下所示:

workbooks(

"book1"

).worksheets(

"sheet1"

)

如果沒有工作簿限定符,vba將在活動工作簿中尋找工作表sheet1。

為了引用工作簿book1中的工作表sheet1上的 某個特定的單元格區域(如單元格a1),可以使用下面的表示式加以引用:

workbooks(

"book1"

).worksheets(

"sheet1"

).range(

"a1"

)

"book1"

).worksheets(

"sheet1"

).range(

"a1"

)

worksheets(

"sheet1"

).range(

"a1"

)

同樣,如果工作表sheet1是當前的活動工作表,甚至可以採用更簡單的表示式加以引用:

range(

"a1"

)

與期的相反,excel中並沒有引用單個單元格(稱為cell)的物件。單個的單元格只是乙個恰巧由乙個元素組成的range物件。

單純引用物件(如上面的示例所示)並不能夠實現任何事情。為了執行有意義的**,就必須讀取或修改物件的屬性(property),或者指定用於物件的方法(method)。將在下一節中講解。

VBA程式設計系列之物件模型 4 常用物件概述

常用物件概述 range物件代表工作表中的單元格或單元格區域。您在excel中最常使用的就是range物件,直接面對或操作的也是它。例如,您對excel中的單元格或單元格區域進行操作,都需要將其設定為乙個range物件,然後使用該range物件的方法和屬性,以完成對單元格或單元格區域的操作。基本上,...

vba 自動換行 VBA中msgbox的用法小結

在訊息框中顯示資訊,並等待使用者單擊按鈕,可返回單擊的按鈕值 比如 確定 或者 取消 通常用作顯示變數值的一種方式。msgbox prompt buttons title helpfile,context 引數說明 1 prompt,必需的引數,為字串,作為顯示在訊息框中的訊息文字。其最大長度約為1...

VBA中Dictionary物件使用小結

自 vba中dictionary物件使用小結 dim dict 建立dictionary set dict createobject scripting.dictionary 增加專案 dict.add a 300 dict.add b 400 dict.add c 500 統計專案數 n dict...