[问题] excel VBA自动执行储存格输入的档案

楼主: dry123 (dry123)   2019-05-04 12:50:43
软件:Excel
版本:2010
我是VBA新手
假设我在路径X中,包含有1.txt 2.txt 3.txt 三个档案
在Excel中
G1字段输入档案路径X
G2字段是档名开始,输入1
H2字段是档名结束,输入3
此VBA的目的是借由输入资讯,
自动以Excel开启已知路径中的所有已知档案文字档
且档案命名都有一定顺序,例如1,2,3
我写了以下VBA
Sub A()
'
'宏1 宏
'
Dim i As Integer
X = Cells(2, "G").Value
Y = Cells(2, "H").Value
Z = Cells(1, "G").Value
For i = X To Y
Workbooks.Open Filename:=Range("G1").Value & "\" & i
Next i
End Sub
但Excel只开启了1.txt后
就显示
"执行阶段错误' 1004'
很抱歉,我们找不到C:\。此项目是否已移动、重新命名或删除"的对话框
新手不知道程式码哪里有错
还请专家解析
作者: soyoso (我是耀宗)   2019-05-04 13:23:00
i后面应是还要加上副档名,如 ... & i & ".txt" 试试
作者: chunchanhung (毛毛狂)   2019-05-04 13:23:00
因你开启档案后,开启档案的相对应的储存格没有资料在range前加上workbook(档案名称)
作者: soyoso (我是耀宗)   2019-05-04 14:06:00
如是c大所提的话,因变量Z就已读取储存格G1的值就以 Z & "\" & i的方式range前加上workbook也不正确,因为range不是workbooks的属性或方法workbooks(...).worksheets(...).range才是以内文要加的话thisworkbook.activesheet.range("g1")或是将程序写在microsoft excel物件,同g1储存格工作表内那就都不用改了
楼主: dry123 (dry123)   2019-05-04 16:38:00
感谢s大,使用起来OK,确实要在range("g1")前指定thisworkbook.activesheet,也就是指定本工作表才能顺利进行循环

Links booklink

Contact Us: admin [ a t ] ucptt.com