PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   EXCEL VBA 讀取多個CSV檔案問題? (https://www.pcdvd.com.tw/showthread.php?t=1085811)

黑夜微風 2015-08-24 10:10 AM

EXCEL VBA 讀取多個CSV檔案問題?
 
我想要讀取不同檔案型態檔案到EXCEL,但是目前遇到的問題是,若有多個檔案讀取,只會開啟第一個檔案讀取資料,之後開啟第二個檔案就不能開了.請問是我沒有完全關閉檔案造成,還是有其他問題?麻煩各位~謝謝!

我目前的程式碼
Sub Search_File_Summary(File_Summary, LogLink_Temp, t, Release_Temp, Search_Key, Search_Key1, Search_Key2, Temp_FileName, Temp_FileName_A, Temp_FileName_B)
Dim MyBin As Double
FileCheck_Point = False

Select Case UCase(Temp_FileName_B)
Case "SPD" 'TMT
If InStr(UCase(Temp_FileName), "FT1_R0") > 0 Then
Read_File = Temp_FileName
Else
Read_File = Temp_FileName
End If

Check_FileName = LogLink_Temp(t, 3) & Read_File
FileCheck Check_FileName, FileCheck_Point
If FileCheck_Point = True Then
Open LogLink_Temp(t, 3) & Read_File For Input As #1
r = 0
Search_Key_Bin = ""
Do Until EOF(1)
Line Input #1, data
MyString = data
If MyString <> "" And Search_Key_Bin <> "" Then
MyBin = Split(MyString, ",")(Search_Key_Bin)
File_Summary(t, MyBin) = File_Summary(t, MyBin) + 1
End If
If InStr(MyString, "Program") > 0 Then
File_Summary(t, 0) = Split(Replace(MyString, " ", ""), ",")(2)
End If
If InStr(UCase(MyString), "BIN") > 0 Then
MyString_Split = Split(MyString, ",")
If Search_Key_Bin = "" Then
For i = 0 To UBound(MyString_Split)
If InStr(UCase(MyString_Split(i)), "BIN") > 0 Then
Search_Key_Bin = i
File_Summary(t, 0) = 1
Exit For
End If
Next i
End If
End If
Loop
Close #1
End If
Case "LOG" 'Amida
Check_FileName = LogLink_Temp(t, 3) & Temp_FileName
FileCheck Check_FileName, FileCheck_Point
If FileCheck_Point = True Then
Open LogLink_Temp(t, 3) & Temp_FileName For Input As #1
r = 0
Search_Key_Bin = ""
Do Until EOF(1)
Line Input #1, data
MyString = data
If MyString <> "" And Search_Key_Bin <> "" Then
MyBin = Split(MyString, ",")(Search_Key_Bin)
File_Summary(t, MyBin) = File_Summary(t, MyBin) + 1
End If
If InStr(MyString, "Test Program") > 0 Then
File_Summary(t, 0) = Split(Replace(MyString, " ", ""), ":")(1)
End If
If InStr(UCase(MyString), "BIN") > 0 Then
MyString_Split = Split(MyString, ",")
If Search_Key_Bin = "" Then
For i = 0 To UBound(MyString_Split)
If InStr(UCase(MyString_Split(i)), "BIN") > 0 Then
Search_Key_Bin = i
File_Summary(t, 0) = 1
Exit For
End If
Next i
End If
End If
Loop
Close #1
End If
Case "CSV" 'Scud1A
Check_FileName = LogLink_Temp(t, 3) & Temp_FileName
FileCheck Check_FileName, FileCheck_Point
If FileCheck_Point = True Then
Open LogLink_Temp(t, 3) & Temp_FileName For Input As #1
r = 0
Search_Key_Bin = ""
Do Until EOF(1)
Line Input #1, data
MyString = data
If MyString <> "" And Search_Key_Bin <> "" Then
MyBin_Tmp = Split(MyString, ",")
MyBin = Replace(Split(MyString, ",")(Search_Key_Bin), " ", "")
File_Summary(t, MyBin) = File_Summary(t, MyBin) + 1
End If
If InStr(MyString, "Test_Program") > 0 Then
File_Summary(t, 0) = Split(Replace(MyString, " ", ""), ",")(1)
End If
If InStr(UCase(MyString), "BIN") > 0 Then
MyString_Split = Split(MyString, ",")
If Search_Key_Bin = "" Then
For i = 0 To UBound(MyString_Split)
If InStr(UCase(MyString_Split(i)), "BIN") > 0 Then
Search_Key_Bin = i
'File_Summary(t, 0) = 1
Exit For
End If
Next i
End If
End If
Loop
Close #1
End If
End Select
End Sub


所有的時間均為GMT +8。 現在的時間是06:37 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。