如何在vba

时间:2016-02-12 01:44:14

标签: vba excel-vba excel

我有一个包含1000个数据条目的文本文件(只有整数)。文本文件中每行有一个条目。我想知道如何将数据传输到VBA中的数组中。

感谢您抽出宝贵时间作出回应。

2 个答案:

答案 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个值,代码就会停止。