作者dry123 (dry123)
看板Office
標題[問題] excel VBA自動執行儲存格輸入的檔案
時間Sat May 4 12:50:43 2019
軟體: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:\。此項目是否已移動、重新命名或刪除"的對話框
新手不知道程式碼哪裡有錯
還請專家解析
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.94.205
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1556945445.A.1EA.html
※ 編輯: dry123 (180.217.94.205), 05/04/2019 12:55:56
1F:→ soyoso: i後面應是還要加上副檔名,如 ... & i & ".txt" 試試 05/04 13:23
2F:推 chunchanhung: 因你開啟檔案後,開啟檔案的相對應的儲存格沒有資料 05/04 13:23
3F:→ chunchanhung: 在range前加上workbook(檔案名稱) 05/04 13:23
4F:→ soyoso: 如是c大所提的話,因變數Z就已讀取儲存格G1的值 05/04 14:06
5F:→ soyoso: 就以 Z & "\" & i的方式 05/04 14:06
6F:→ soyoso: range前加上workbook也不正確,因為range不是workbooks的 05/04 14:14
7F:→ soyoso: 屬性或方法 05/04 14:15
8F:→ soyoso: workbooks(...).worksheets(...).range才是 05/04 14:16
9F:→ soyoso: 以內文要加的話thisworkbook.activesheet.range("g1") 05/04 14:20
10F:→ soyoso: 或是將程序寫在microsoft excel物件,同g1儲存格工作表內 05/04 14:23
11F:→ soyoso: 那就都不用改了 05/04 14:23
12F:→ dry123: 感謝s大,使用起來OK,確實要在range("g1")前指定 05/04 16:38
13F:→ dry123: thisworkbook.activesheet,也就是指定本工作表才能順利 05/04 16:39
14F:→ dry123: 進行迴圈 05/04 16:39