Board logo

標題: [發問] 物件可以呼叫屬性再呼叫物件嗎 [打印本頁]

作者: pigexcel2992    時間: 2015-3-25 09:14     標題: 物件可以呼叫屬性再呼叫物件嗎

我想問下面這一行
Sheets("sheet1").UsedRange.Rows.Count

Sheets物件 呼叫 UsedRange 屬性

後面的Rows  是 UsedRange 的屬性嗎 ?
UsedRange 是屬性同時也是物件?
還是它也是 Sheets 的屬性 ?

Excel VBA 可以是以下這樣嗎 ?
物件.屬性.物件.屬性
作者: stillfish00    時間: 2015-3-25 09:57

本帖最後由 stillfish00 於 2015-3-25 09:59 編輯

回復 1# pigexcel2992
F1 Excel 說明文件
  1. Excel 開發人員參考資料
  2. Worksheet.UsedRange 屬性
  3. 會傳回 Range 物件,此物件代表指定工作表上的已用範圍。唯讀的。
複製代碼
UsedRange 是屬性同時也是物件?
可以這麼說,UsedRange是Worksheet的屬性,也是一物件

更明確的說就是Worksheet物件類別中有像下面這樣的定義,回傳Range物件
Public Property Get UsedRange() as Range
    Set UsedRange = XXXX
End Property

同理Rows之於Range的關係也是這樣
作者: diolin    時間: 2015-3-25 11:35

Microsoft 的說明
UsedRange 屬性 - 傳回一個 Range 物件,此物件代表指定工作表中的已用範圍。唯讀。

它是屬性, 但會回傳一個 Range 物件, 所以就請當成一個 Range 物件來使用
作者: bobomi    時間: 2015-3-25 14:06

本帖最後由 bobomi 於 2015-3-25 14:07 編輯

Sheet1.UsedRange
   物件.屬性

UsedRange.Rows
          物件.屬性

Rows.Count
  物件.屬性

有沒有看到 UsedRange 既是屬性也是物件

那 UsedRange "真正自我" 的表現形式是什麼? 是物件
因為它後面可以加  .  表示他是各集合體 ( 除非裡面沒放公開的屬性, 不然一並可以加 . )

Msgbox isObject(UsedRange)
Msgbox isObject(UsedRange.Rows.Count)
作者: pigexcel2992    時間: 2015-3-25 19:18

本帖最後由 pigexcel2992 於 2015-3-25 19:20 編輯

看大家給的答案,消化一下,理解如下

A物件.B屬性

物件呼叫屬性來用,但是屬性會回傳一個物件

因為B屬性有回傳的物件,所以可以利用此物件來呼較此物件的屬性來用


如果後面又這樣以此類推下去
A物件.B屬性.C.D.E
後面的 C D 都是因為有回傳的物件,所以才可以呼叫屬性出來用,然後一值接下去

這樣想應該沒錯吧 ?
作者: GBKEE    時間: 2015-3-26 07:56

回復 5# pigexcel2992
  1. Option Explicit
  2. Sub Ex()
  3.     With ActiveSheet.[F5:H15]
  4.         MsgBox .Columns.Count
  5.         With .Columns(4)
  6.             MsgBox .Address & " - 共有" & .Cells.Count & "個 Cells"
  7.             With .Range("B" & .Cells.Count)
  8.                 MsgBox .Address
  9.             End With
  10.         End With
  11.     End With
  12. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)