2
我試圖插入一個名稱和它的值轉換成二維數組:REDIM與二維數組
____________
| name| value| index 0
|name1|value1| index 1
|name2|value2| index 2 ...
.
.
.
我迄今所做的:
Function ParseCSV(ByVal FileName As String)
Dim FS 'As Scripting.FileSystemObject
Dim Txt 'As Scripting.TextStream
Dim CSVLine
Dim arrayOfElements
Dim nbErrors As Integer
Dim namesNotInDb() As String
Dim element As Variant
Dim errorMsg As String
Dim namesAgeMatrix() As String
Dim nbrAges As Integer
Set FS = CreateObject("Scripting.FileSystemObject")
Set Txt = FS.OpenTextFile(FileName, 1, False)
nbrAges = 0
Do While Not Txt.AtEndOfStream
If nbrAges = 0 Then ReDim namesAgeMatrix(0, 1) Else ReDim Preserve namesAgeMatrix(nbrAges, 1)
CSVLine = Txt.ReadLine
arrayOfElements = Split(CSVLine, ",")
namesAgeMatrix(nbrAges, 0) = arrayOfElements(0)
If arrayOfElements(1) = "N/A" Then
nbErrors = nbErrors + 1
ReDim Preserve snamesNotInDb(nbErrors)
namesNotInDb(nbErrors) = arrayOfElements(0)
instrumentPriceMatrix(nbrInstruments, 1) = 0
Else
namesAgeMatrix(nbrAges, 1) = arrayOfElements(1)
End If
nbrAges = nbrAges + 1
Loop
Txt.Close
If nbErrors > 0 Then 'displaying error/success message
errorMsg = ""
For Each name In namesNotInDb
errorMsg = errorMsg & name & " "
Next
MsgBox "Warning : " & errorMsg & "have no feed in DB. Name set by default to John.", vbExclamation
Else
MsgBox "Importation success!", vbOKOnly
End If
ParseCSV = namesAgeMatrix
End Function
我得到的錯誤是: Subscription our of range
以下:
Else ReDim namesAgeMatrix(nbrAges, 1)
我怎樣才能REDIM我的數組的正確方法?
在此先感謝。
你檢查'nbrNames'的價值? – sam092
它的值是1. – Pol0nium
CSVLine定義在哪裏? – stobin