Board logo

標題: [發問] WIN7更新WIN10後VBA迴圈無法執行 [打印本頁]

作者: abc9gad2016    時間: 2019-11-1 15:07     標題: WIN7更新WIN10後VBA迴圈無法執行

請問版上前輩,我前兩天更新WIN10,今日執行之前在WIN7所寫的VBA
發現抓不到迴圈(紅字段落),請問應該如何解決
謝謝

程式如下:
Public Sub 主機板發料工作簿合併step1()

    Application.ScreenUpdating = False
    '路徑
    Path = "D:\BOM"
    '檔名由Dir取得第一個檔
    Filename = Dir(Path & "*.XLS") '迴圈條件當有檔案才進入迴圈
   
    Do While Filename <> ""
   
        Workbooks.Open Path & "\" & Filename
        
        If i <> 1 Then '第一個檔案另存成全部
        
            Sheets(1).Copy '存檔路徑 & 名稱 & 格式
            
            ActiveWorkbook.SaveAs "\\C:\Users\curryjeng\Desktop\自動合併.xlsx"
            i = 1
            Workbooks(Filename).Close
        Else
            Sheets(1).Copy After:=Workbooks("自動合併.xlsx").Sheets(1)
            Workbooks(Filename).Close
        End If
   
        Filename = Dir()
    Loop
    ActiveWorkbook.Save '目前使用的檔案存檔
   
'目前使用的關閉並存檔
    'Workbooks("_自動合併.xlsx").Close savechanges:=True
   
'開啟"_自動合併.xlsx"的檔案
    'Workbooks.Open Filename:="R:\資材\2017 相關資料\耗材_銘版_說明書請購\JER\3  ● 主機板發料 ●\Excel前置加工作業\_自動合併.xlsx"

    '        每個Sheet都複製
'        For Each Sheet In ActiveWorkbook.Sheets
'            Sheet.Copy After:=ThisWorkbook.Sheets(1)
'        Next Sheet
    Application.ScreenUpdating = True
End Sub
作者: abc9gad2016    時間: 2019-11-1 17:53

抱歉沒改到已無法編輯,紅字範圍為以下迴圈的地方
Do While Filename <> ""
   
        Workbooks.Open Path & "\" & Filename
        
        If i <> 1 Then '第一個檔案另存成全部
        
            Sheets(1).Copy '存檔路徑 & 名稱 & 格式
            
            ActiveWorkbook.SaveAs "\\C:\Users\curryjeng\Desktop\自動合併.xlsx"
            i = 1
            Workbooks(Filename).Close
        Else
            Sheets(1).Copy After:=Workbooks("自動合併.xlsx").Sheets(1)
            Workbooks(Filename).Close
        End If
   
        Filename = Dir()
    Loop
作者: luhpro    時間: 2019-11-16 08:35

請問版上前輩,我前兩天更新WIN10,今日執行之前在WIN7所寫的VBA
發現抓不到迴圈(紅字段落),請問應該如何 ...
abc9gad2016 發表於 2019-11-1 15:07


看起來應該是你 D:\ 目錄下已經找不到任何一個 BOM*.XLS 檔案,

你要不要試試用 F8 執行 "單步模式",

再於 "即時運算視窗" 裡打上 :  debug.print 變數名稱  (打完指令按下 Enter 鍵)

逐個確認每一行指令中相關變數的值是否符合你的預期?
作者: n7822123    時間: 2019-11-16 13:53

本帖最後由 n7822123 於 2019-11-16 14:02 編輯

回復 1# abc9gad2016


發現你的路徑少了 "\",加"\" 試試?

Path = "D:\BOM"
Filename = Dir(Path & "\*.XLS")



沒有進Do 迴圈代表電腦找不到檔案,
你先確認你的電腦 是否有 D:\BOM 資料夾
並且裡面是否有 .xls 檔案?

Filename = Dir(Path & "\*.XLS")     '迴圈條件當有檔案才進入迴圈
MsgBox Filename    '應該要秀出檔案名稱




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)