[問題] 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