返回列表 上一主題 發帖

GetOpenFilename的語法問題

GetOpenFilename的語法問題

小弟最近在使用GetOpenFilename時發生了一些問題一直無法排除,
以下是我截取了我程式碼的部分,
目前小弟遇到的問題就是我在判斷FO在開啟舊檔時若按下取消會出現錯誤,
若我在If UBound(FO) > File_qty Then前面再加入If FO = False Then來判斷時可以解決,
但若我實際有載入檔案時就會發生型態不符的問題,而無法繼續後面的程式,請各位大大幫我解惑一下,謝謝。

    File_qty = Sheets(SN_1).Cells(2, 6)
    FO = Application.GetOpenFilename("Excel File(*.CSV) (*.CSV),(*.CSV)", , , , True)

    If UBound(FO) > File_qty Then
   
        MsgBox ("載入檔案大於" & File_qty & "個已超出程式上限,請重新選擇檔案與確認載入數量是否小於或等於" & File_qty & "個,謝謝!!")
        Sheets(SN_1).Select
   
    Else
   
        For I = 1 To UBound(FO)
            Sheets(SN_2).Select
            WB = ActiveWorkbook.Name
            WS = ActiveSheet.Name
            Workbooks.Open Filename:=FO(I), ReadOnly:=False, Notify:=False
            FN = ActiveWorkbook.Name
            SN = ActiveSheet.Name
            Range("A1:O15").Copy
            Windows(WB).Activate
            Sheets(SN_2).Cells(1, 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            NN = [A65536].End(xlUp).Row
            Windows(FN).Activate
            ActiveWorkbook.Close SaveChanges:=False
            Windows(WB).Activate
            ID = Cells(2, 3)
            T = Split(Trim(Cells(3, 3)), " ")
            Range(Cells(7, 1), Cells(NN, 15)).Copy
            Sheets("LED測試結果").Select
            Cells((I - 1) * 20 + 8, 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Cells((I - 1) * 20 + 4, 2) = Mid(ID, 1, Len(ID) - 4)
            Cells(I + 4, 20) = Mid(ID, 1, Len(ID) - 4)
            Cells((I - 1) * 20 + 5, 2) = T(0)
            Cells((I - 1) * 20 + 6, 2) = T(1) & " " & T(2)
        Next I
        Sheets("LED測試結果").Select
        Application.Run ("Calculate_Mcd")
            
    End If

GB大大真強,
我就卡在FO有讀取檔案時是陣列與按下取消時型態不符而卡住,
讓我學習到不同的寫法了~~感謝GB大大的指導!!!

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題