返回列表 上一主題 發帖

[發問] 請問該如何比對陣列中的資料與工作表姓名 ?

回復 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 外不用再加 ""


因為你的檔案我這裡不能正常執行, 所以我針對你所說的問題點,另外用一個程式來模擬,你參考看看 :
  1. Private Sub Workbook_Open()
  2.   Dim iI%, iJ%
  3.   Dim vShtName(10, 2, 8)
  4.   
  5.   Set vOP_OI = ThisWorkbook
  6.   
  7.   iJ = Sheets.Count
  8.   For iI = 1 To iJ
  9.     vShtName(iI, 2, 8) = Sheets(iI).Name
  10.     Debug.Print Sheets(iI).Name = vShtName(iI, 2, 8)
  11.   Next iI
  12.   
  13.   For iI = 1 To iJ
  14.     Sheets(vShtName(iI, 2, 8)).Cells(1, 1) = Sheets(vShtName(iI, 2, 8)).Cells(1, 1) + iI
  15.   Next iI
  16.   
  17.   MsgBox vOP_OI.Sheets(2).Cells(1, 1)
  18. End Sub
複製代碼
OP_OI_test.zip (7.48 KB)
請進巨集的編輯器後按 F8 單步執行 觀察相關變數異動情形, 希望能對你有所幫助.

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題