我有一个包含1000个数据条目的文本文件(只有整数)。文本文件中每行有一个条目。我想知道如何将数据传输到VBA中的数组中。
感谢您抽出宝贵时间作出回应。
答案 0 :(得分:3)
我们也可以不循环地执行此操作:
Sub Test()
Dim FSO As Object, MyFile As Object
Dim FileName As String, Arr As Variant
FileName = "C:\Test\Test.txt" ' change this to your text file full name
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.OpenTextFile(FileName, 1)
Arr = Split(MyFile.ReadAll, vbNewLine) ' Arr is zero-based array
'For test
'Fill column A from this Array Arr
Range("A1").Resize(UBound(Arr) + 1, 1).Value = Application.Transpose(Arr)
End Sub
答案 1 :(得分:2)
只需将文本文件的路径保存到名为FilePath的变量中,然后运行此代码块。
Dim arInt(1 to 1000) as Integer
Dim intCount as Integer
Set objFSO = CreateObject("Scripting.FileSystemObject")
With = objFSO.OpenTextFile(FilePath, ForReading)
intCount = 1
Do While .EOF = False AND intCount < 1001
arInt(intCount) = Val(.readline)
intCount = intCount + 1
Loop
Val函数将字符串转换为数字值,然后vba将其转换为整数。 之后,数组中有100个int值。 一旦文件竞争或数组中有1000个值,代码就会停止。