作者lovesnow1990 (冰心之月)
看板Visual_Basic
標題[VBA ] 如何對另一個活頁簿執行動作
時間Mon Jul 8 15:06:32 2013
小弟是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
1F:推 bulldog:Workbooks(y)有打開嗎? 07/08 15:27
原本沒有打開
所以在做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)