看板 Office 關於我們 聯絡資訊
軟體: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://www.ptt.cc/bbs/Office/M.1556945445.A.1EA.html ※ 編輯: dry123 (180.217.94.205), 05/04/2019 12:55:56
soyoso: i後面應是還要加上副檔名,如 ... & i & ".txt" 試試 05/04 13:23
chunchanhung: 因你開啟檔案後,開啟檔案的相對應的儲存格沒有資料 05/04 13:23
chunchanhung: 在range前加上workbook(檔案名稱) 05/04 13:23
soyoso: 如是c大所提的話,因變數Z就已讀取儲存格G1的值 05/04 14:06
soyoso: 就以 Z & "\" & i的方式 05/04 14:06
soyoso: range前加上workbook也不正確,因為range不是workbooks的 05/04 14:14
soyoso: 屬性或方法 05/04 14:15
soyoso: workbooks(...).worksheets(...).range才是 05/04 14:16
soyoso: 以內文要加的話thisworkbook.activesheet.range("g1") 05/04 14:20
soyoso: 或是將程序寫在microsoft excel物件,同g1儲存格工作表內 05/04 14:23
soyoso: 那就都不用改了 05/04 14:23
dry123: 感謝s大,使用起來OK,確實要在range("g1")前指定 05/04 16:38
dry123: thisworkbook.activesheet,也就是指定本工作表才能順利 05/04 16:39
dry123: 進行迴圈 05/04 16:39