VBA读取txt 遇到某行一样的数据就把相同的数据存入同一个数组
时间: 2023-06-12 20:02:10 浏览: 104
你好,可以使用以下代码实现:
```VBA
Sub readTxt()
Dim filePath As String '文件路径
Dim arr() As String '存储数据的数组
Dim index As Integer '数组下标
index = 0 '初始化数组下标为0
filePath = "C:\test.txt" '文件路径,根据实际情况修改
'打开文件
Open filePath For Input As #1
'逐行读取文件
Do While Not EOF(1)
Line Input #1, tempStr
'如果该行数据与上一行相同,则将数据存入数组中
If tempStr = prevStr Then
arr(index) = tempStr
index = index + 1
End If
'保存当前行数据,用于下一次比较
prevStr = tempStr
Loop
'关闭文件
Close #1
End Sub
```
以上代码可以读取指定路径下的test.txt文件,并将其中相同的行数据存入同一个数组中。如需修改文件路径或存储方式,可根据实际情况进行修改。希望能够帮助到您。
相关问题
VBA不打开txt 读取数据分行存入数组然后按列拆分输出到excel表
ChitGPT:你好!关于你的问题,你可以使用VBA打开txt文件,使用Split函数将数据按行进行拆分,然后将拆分后的数据存储到数组中。接下来,你可以在Excel中打开一个新的工作表,将数组中的数据按照列进行拆分输出。
以下是一个简单的VBA代码示例:
Sub ReadTxtFile()
Dim filePath As String
Dim dataArray() As String
Dim dataRange As Range
Dim i As Integer, j As Integer
'选择要打开的文本文件'
filePath = Application.GetOpenFilename(FileFilter:="Text Files (*.txt), *.txt")
If filePath = "False" Then Exit Sub
'打开文件,读取数据到数组中'
Open filePath For Input As #1
dataArray = Split(Input$(LOF(1), 1), vbNewLine)
Close #1
'在Excel中输出数据到新工作表上'
Sheets.Add
Set dataRange = Range("A1").Resize(UBound(dataArray) + 1, 1)
dataRange = Application.Transpose(dataArray)
For j = 1 To UBound(dataArray) + 1
For i = 1 To UBound(Split(dataArray(j - 1)))
Cells(i, j) = Split(dataArray(j - 1))(i - 1)
Next i
Next j
End Sub
希望能够帮到你!
VBA 4G大小的TXT清洗数据后存入数组
很高兴为您答疑解惑。关于您的问题,您可以尝试使用VBA编写一个程序来完成此任务。您可以使用FileSystemObject对象来读取TXT文件并将其分割为行或单词,然后使用Array函数将它们存储为数组。然后您可以编写清洗函数来清洗或修改数组的数据。最后,您可以使用WriteLine方法将数组写入新的文本文件中。如果您需要更具体的代码示例,请告诉我。
阅读全文