標題:
[發問]
excel用vba依序開啟檔案
[打印本頁]
作者:
xoofer
時間:
2014-12-27 12:31
標題:
excel用vba依序開啟檔案
不好意思想請問如何在excel用vba依序開啟檔案
原想法是用迴圈的方式去依序開啟儲存格中的路徑
路徑寫在工作表中sheet1的A1 和A2 ( C:\vbatest1.xls 和 C:\vbatest2.xls )
vba如下, 但無法順利run, 不知可否幫忙解答 / 修改錯誤的地方
感激!!!
Dim filename As String
Dim i As Integer
For i = 1 To 2
i = i + 0
Worksheets("Sheet1").Cells(i, 1) = filename
Workbooks.Open "filename"
Next
作者:
owen06
時間:
2014-12-27 13:20
回復
1#
xoofer
試試看
Sub test()
Dim filename As String
Dim i As Integer
For i = 1 To 2
filename = Workbooks("book1.xls").Sheets("sheet1").Cells(i, 1).Value
Workbooks.Open filename
Next
End Sub
複製代碼
作者:
xoofer
時間:
2014-12-27 14:36
回復
2#
owen06
它出現 subscript out of range
click "debug" 出現下述語法被 highlight...
filename = Workbooks("book8.xls").Sheets("Sheet1").Cells(i, 1).Value
謝謝
作者:
xoofer
時間:
2014-12-29 15:39
回復
3#
xoofer
我另外改了下面的方式
結果是vbatest1 檔案開了 ,但迴圈跑第二次vbatest2 時失敗
可否麻煩指導一下該如何修正
謝謝
Sub fpath()
Dim total As Integer
Dim fpath As String
Do While i < 3
i = i + 1
fpath = Cells(i, 1)
MsgBox (fpath)
Workbooks.Open (fpath)
Loop
End Sub
作者:
ashan0418
時間:
2014-12-29 17:48
回復
4#
xoofer
略做修改,您試試!!
Sub fpath()
Dim total As Integer
Dim fpath As String
For i = 1 To 2
fpath = ThisWorkbook.ActiveSheet.Cells(i, 1)
Workbooks.Open (fpath)
Next
End Sub
複製代碼
作者:
owen06
時間:
2014-12-30 08:37
回復
4#
xoofer
先說一下workbooks("xxxxx")抓不到的原因,應該是因為你這個檔只是一個暫時新增的檔案,
並未儲存在電腦中,所以才會造成這種狀況,如果是已經有儲存的excel表,就不會了。
再來你每次的語法都有一個盲點,就是你都沒有指定是要哪一個檔案的某格值,所以你雖然開了第一個檔案vbatest1,
但是系統已經跳開了你原本的檔案,而執行到vbatest1上了,但vbatest1上並沒有你想要的路徑,所以vbatest2就開不了了。
所以你如果要在不同檔案或工作表間切換執行的時候,記得要給個明確的指令,才不會造成混亂。
Sub test()
Dim filename As String
Dim i As Integer
For i = 1 To 2
filename = ThisWorkbook.Sheets("sheet1").Cells(i, 1).Value
Workbooks.Open filename
Next
End Sub
複製代碼
作者:
xoofer
時間:
2014-12-30 10:38
回復
6#
owen06
感謝指導
語法可行了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)