作者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)