- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2012-2-9 22:21
| 只看該作者
回復 1# j1221
1. 如果只會開一個 Excel 檔, 則不用打 ThisWorkbook, 若怕同時可能開啟超過一個 Excel 檔案,
則請於開檔時就直接設定指標到該檔,否則若使用 ThisWorkBook 還是可能會抓到另一個檔案的內容.
例如 :
在 Module 裡加上
Dim vOP_OI
再在 Workbook_Open 裡加上
set vOP_OI=ThisWorkbook
引用時則可用 vOP_OI.Sheets(2).Name 來抓取 Sheet 的 Name
2. 要引用 Sheet 的名字時, Variant 外不用再加 ""
因為你的檔案我這裡不能正常執行, 所以我針對你所說的問題點,另外用一個程式來模擬,你參考看看 :- Private Sub Workbook_Open()
- Dim iI%, iJ%
- Dim vShtName(10, 2, 8)
-
- Set vOP_OI = ThisWorkbook
-
- iJ = Sheets.Count
- For iI = 1 To iJ
- vShtName(iI, 2, 8) = Sheets(iI).Name
- Debug.Print Sheets(iI).Name = vShtName(iI, 2, 8)
- Next iI
-
- For iI = 1 To iJ
- Sheets(vShtName(iI, 2, 8)).Cells(1, 1) = Sheets(vShtName(iI, 2, 8)).Cells(1, 1) + iI
- Next iI
-
- MsgBox vOP_OI.Sheets(2).Cells(1, 1)
- End Sub
複製代碼
OP_OI_test.zip (7.48 KB)
請進巨集的編輯器後按 F8 單步執行 觀察相關變數異動情形, 希望能對你有所幫助. |
|