Board logo

標題: [發問] 使用with的觀念, 有請先進替我釐清 [打印本頁]

作者: thps51134    時間: 2011-11-3 09:39     標題: 使用with的觀念, 有請先進替我釐清

本帖最後由 thps51134 於 2011-11-3 09:45 編輯

想請教對於"With" 來說
With Sheet1  與
With Sheets("Sheet1") 兩者的不同

在with中
"物件可省略(.)"
這是個誤會、還是是有條件性的?

===
想做一個一開檔案時就在Sheet1的C1寫出"OH!"的code

剛開始寫成這樣:
Private Sub Workbook_Open()
    With Sheet1
        Cells(1, "C").Value = "OH!"
    End With
End Sub
  '因為之前看到有說with之中, 物件可以省略的關係吧...結果省略就在錯的Sheet上動作了'

當下不知道為什麼每次開啟都是動到開啟時的Sheet而非Sheet1
上網查時發現與別人的寫法不同
於是變成了這樣

Private Sub Workbook_Open()
    With Sheets("Sheet1")      
         .Cells(1, "C").Value = "OH!"
    End With   
End Sub
 '這時發現開啟檔案時, Work_Open() 就不動作了'

最後...
Private Sub Workbook_Open()
    With Sheet1
        .Cells(1, "C").Value = "OH!"
    End With
End Sub
  '成功!'

最後這樣就成功了
=====
覺得觀念搞不清楚很嚴重
還是說其實我錯的是其他地方而不自覺 (那就更糟糕了)
麻煩大家指導, 謝謝!
作者: Hsieh    時間: 2011-11-3 10:17

回復 1# thps51134


    Sheets("Sheet1")這是只工作表名稱為Sheet1
    Sheet1這是工作表的CodeName
如圖
[attach]8411[/attach]
至於With區段內可省略物件的說法是沒錯的
只是在區段內要省略物件,必須加上點

With Sheet1
.Range("A1")="aaaa"
End With
作者: thps51134    時間: 2011-11-3 10:24

本帖最後由 thps51134 於 2011-11-3 10:30 編輯

回復 2# Hsieh


    茅塞頓開! 感謝!

 後來跑去取消隱藏一個名稱是"Sheet1"的工作表
 發現C1還真的有個"OH!"在上面




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