[VBA ] 如何對另一個活頁簿執行動作

看板Visual_Basic作者 (冰心之月)時間12年前 (2013/07/08 15:06), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
小弟是VBA新手 最近因為有需求所以試著寫一個巨集對另一個活頁簿執行動作 所以在一個test的excel檔案中加入下面的巨集 Sub test() Dim x As String For i = 1 To 2 x = i y = x + ".csv" MsgBox (Workbooks(y).Worksheet(x).Cells(1, 1)) Next End Sub 其中1.csv跟2.csv都是在同一個資料夾下 (其中他們的工作表也分別是1跟2) 試著一行一行跑跑看時 會在下面這行停下來 MsgBox (Workbooks(y).Worksheet(x).Cells(1, 1)) 他說執行階段錯誤'9': 陣列索引超出範圍 請問我這樣指定的方法有錯誤嘛? -- 如果我們要把磁鐵棒放進線圈,   線圈會說「不!!不要過來!!」而發出阻力不讓磁鐵棒靠近。 但是如果我們要把放進去的磁鐵棒從線圈拿走,         「傲嬌是一種 線圈反而會說「我…我又沒有叫你走!!」而發出阻力不讓磁鐵棒離開= =  自然現象」 這種現象不就是傲嬌嗎!!!                  新科科人雜誌 所以傲嬌這東西根本不是新梗,19世紀就有科學家發現傲嬌了!     /民明書房 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.164.113.191

07/08 15:27, , 1F
Workbooks(y)有打開嗎?
07/08 15:27, 1F
原本沒有打開 所以在做MsgBox (Workbooks(y).Worksheet(x).Cells(1, 1))之前要先開啟檔案 是像下面這樣嘛? Sub test() Dim x As String Dim y As String Dim filename As String For i = 1 To 2 x = i y = x + ".csv" filename = "E:\test\" + y Windows.Open filename MsgBox (Workbooks(y).Worksheet(x).Cells(1, 1)) Windows.Close y Next End Sub 我先來試跑看看 ※ 編輯: lovesnow1990 來自: 1.164.113.191 (07/08 15:58)
文章代碼(AID): #1HscJxxR (Visual_Basic)
文章代碼(AID): #1HscJxxR (Visual_Basic)