0
CSV Files我有一個奇怪的問題,打開一個CSV文件。我已經編寫了一個代碼來打開CSV文件並使用vba在Excel中處理它。我只能打開一個特定的CSV文件,但任何其他CSV文件,我無法打開它或在Excel中處理它我不知道爲什麼。爲什麼只有一個特定的文件正在被Excel VBA讀取。下面的代碼使用vba打開csv文件
Sub lithium()
Dim ws As Worksheet
Dim MyData As String, strData() As String
Dim PathInit As String
Dim i As Integer
Dim z As Long, filecount As Long
Dim l As Long
Dim LR As Long
k = 2
LR = Range("A" & Rows.Count).End(xlUp).Row
' Opening the txt file
Dim myTxt
myTxt = Application.GetOpenFilename(filefilter:="CSV Files (*.csv), *.csv", MultiSelect:=False)
Open myTxt For Binary As #1
MyData = Space$(LOF(1))
Get #1, , MyData
Close #1
strData() = Split(MyData, vbCrLf) ' Saving the entire value of the text file into the array. every element in the array in the entire row of the txt file
Dim strRow1() As String
Dim strRow2() As String
Dim strRow3() As String
Dim strRow4() As String
Dim strRow5() As String
Dim strRow6() As String
Dim nCount As Integer
nCount = 1
Dim nRowLenth As Integer
nRowLenth = UBound(strData) - LBound(strData) ' Length of the total data array
j = 3
For i = 18 To nRowLenth
strRow1() = Split(strData(i), ";")
Cells(j, 15).value = strRow1(0)
Cells(j, 16).value = strRow1(1)
If Cells(j, 16).value = "c0" Then Cells(j, 17).value = strRow1(2)
If Cells(j, 16).value = "c1" Then Cells(j, 18).value = strRow1(2)
If Cells(j, 16).value = "c4" Then Cells(j, 19).value = strRow1(2)
Cells(j, 21).value = Left(Cells(j, 17).value, 2)
Cells(j, 22).value = Left(Cells(j, 18).value, 2)
Cells(j, 23).value = Right(Left(Cells(j, 18).value, 6), 2) & Right(Left(Cells(j, 18).value, 4), 2)
Cells(j, 23).NumberFormat = "0000"
Cells(j, 24).value = Left(Cells(j, 19).value, 2)
Cells(j, 26).value = Right(Left(Cells(j, 19).value, 12), 2) & Right(Left(Cells(j, 19).value, 10), 2)
Cells(j, 27).value = Right(Left(Cells(j, 19).value, 16), 2) & Right(Left(Cells(j, 19).value, 14), 2)
If Cells(j, 16).value = "c0" Then Cells(j, 1).value = Cells(j, 15).value Else _
If Cells(j, 16).value = "c1" Then Cells(j, 1).value = Cells(j, 15).value Else _
If Cells(j, 16).value = "c4" Then Cells(j, 1).value = Cells(j, 15).value Else _
If Cells(j, 21).value = "" Then Cells(j, 2).value = "#N/A" Else Cells(j, 2).value = CLng("&H" & Cells(j, 21).value)
If Cells(j, 22).value = "" Then Cells(j, 3).value = "#N/A" Else Cells(j, 3).value = CLng("&H" & Cells(j, 22).value)
If Cells(j, 24).value = "" Then Cells(j, 4).value = "#N/A" Else Cells(j, 4).value = CLng("&H" & Cells(j, 24).value) - 40
Cells(j, 5).value = CLng("&H" & Cells(j, 25).value) - 40
If Cells(j, 23).value = "" Then Cells(j, 5).value = "#N/A" Else Cells(j, 5).value = CLng("&H" & Cells(j, 23).value) - 32768
If Cells(j, 26).value = "" Then Cells(j, 6).value = "#N/A" Else Cells(j, 6).value = CLng("&H" & Cells(j, 26).value)
If Cells(j, 27).value = "" Then Cells(j, 7).value = "#N/A" Else Cells(j, 7).value = CLng("&H" & Cells(j, 27).value)
If Cells(j, 27).value = "" Then Cells(j, 8).value = "#N/A" Else Cells(j, 8).value = Cells(j, 6).value - Cells(j, 7).value
j = j +1
Next
End Sub
,也爲一個特定的文件能夠正常工作,但我得到一個錯誤索引出的,我不知道爲什麼範圍。如果有人可以幫助
我們也不知道。 ....請發佈工作的csv文件的結構和不起作用的csv文件的詳細信息。 ....我們應該猜測哪條線給你的錯誤? ....你的問題類似於'我有這種畫筆,它可以從一罐油漆中確定顏色,但是不能從另一罐油漆中很好地繪製。你能告訴我爲什麼嗎?' – jsotola
對不起,對於CSV文件都是類似的結構...我會上傳文件... – Santhosh
只需粘貼幾行到你的問題 – jsotola