返回列表 上一主題 發帖

想請教關於定義物件語法的疑問?

想請教關於定義物件語法的疑問?

我知道用set可以用來定義物件,但我對於下列兩種寫法有點疑惑,還麻煩大大們幫我釐清一下:
以下的寫法是可以新建一個excel工作表,並將目前所有在該工作簿裡的工作表名稱,全部放在新建的工作表裡。

    Set newa = Sheets.Add(Type:=xlWorksheet)
    For i = 1 To Sheets.Count
    newa.Cells(i, 1).Value = Sheets(i).Name
    Next i
   
在這裡,我對set的用法有疑問就是:如果今天把set拿掉,直接把第三行的newa取代掉,這樣的寫法跟把newa定義成物件的概念有何不同?
就是把第三行變成    Sheets.Add(Type:=xlWorksheet).Cells(i, 1).Value = Sheets(i).Name
然後第一行刪除。

請各位大大指教,謝謝。

本帖最後由 tku0216 於 2011-12-2 15:51 編輯

回復 2# GBKEE


    謝謝大大解說,但有點誤解我的意思...
    我的意思是,我可以把第一行set的宣告拿掉,然後直接寫成最後一行嗎?
    也就是:
    Set newa = Sheets.Add(Type:=xlWorksheet)
    For i = 1 To Sheets.Count
    newa.Cells(i, 1).Value = Sheets(i).Name
    Next i

     或是改成:
     For i = 1 To Sheets.Count
     Sheets.Add(Type:=xlWorksheet).Cells(i, 1).Value = Sheets(i).Name
     Next i

     寫法在意義上有何不同?謝謝。

TOP

多謝大大分享,所以這樣的寫法我想差就差在工作表會因為迴圈每次增加而增加。

還有附帶一個問題:請問sheets跟worksheets的用法差在哪裡?
我知道workbooks是指該excel檔案的所有工作表,但是在VBA裡,為何有時用sheets,有時卻用worksheets?
例如GBKEE大大分享靠上的程式碼中,第一行跟第三行就用到不同的寫法?

TOP

謝謝大大們協助觀念釐清。

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題