赞
踩
以下是一个使用 VBA 读取三个文本文件,并将其内容分别保存在三个工作簿中的示例代码:
Sub Example() Dim filePath1 As String Dim filePath2 As String Dim filePath3 As String Dim fileNumber As Integer Dim line As String Dim sheet1 As Worksheet Dim sheet2 As Worksheet Dim sheet3 As Worksheet Dim rowNumber As Long ' 要读取的三个文件路径 filePath1 = "C:\File1.txt" filePath2 = "C:\File2.txt" filePath3 = "C:\File3.txt" ' 创建新工作簿,并获取其中的三个工作表 Workbooks.Add Set sheet1 = ActiveWorkbook.Sheets(1) Set sheet2 = ActiveWorkbook.Sheets(2) Set sheet3 = ActiveWorkbook.Sheets(3) ' 打开并读取第一个文件 fileNumber = FreeFile() Open filePath1 For Input As #fileNumber rowNumber = 1 Do Until EOF(fileNumber) Line Input #fileNumber, line sheet1.Cells(rowNumber, 1).Value = line rowNumber = rowNumber + 1 Loop Close #fileNumber ' 打开并读取第二个文件 fileNumber = FreeFile() Open filePath2 For Input As #fileNumber rowNumber = 1 Do Until EOF(fileNumber) Line Input #fileNumber, line sheet2.Cells(rowNumber, 1).Value = line rowNumber = rowNumber + 1 Loop Close #fileNumber ' 打开并读取第三个文件 fileNumber = FreeFile() Open filePath3 For Input As #fileNumber rowNumber = 1 Do Until EOF(fileNumber) Line Input #fileNumber, line sheet3.Cells(rowNumber, 1).Value = line rowNumber = rowNumber + 1 Loop Close #fileNumber End Sub 在上面的代码中,我们首先设置了要读取的三个文件路径。 然后,我们使用 Workbooks.Add 函数创建了一个新的工作簿, 并使用 Set 语句获取了其中的三个工作表。 接下来,我们使用 Open 函数分别打开三个文本文件, 并在每个循环中逐行读取每个文件的内容, 将其写入到对应的工作表中的一列中。 在每个文件处理完成后,我们使用 Close 函数显式地关闭了文件, 以确保下一次读取时不会遇到问题。 请注意,上面的代码假定您要将每个文件的内容保存在一个单独的列中。 如果您想要更改此行为, 可以调整 sheet1.Cells(rowNumber, 1) 中的列号, 以将数据保存在需要的列中。
**
**
Sub Example() Dim filePath1 As String Dim filePath2 As String Dim filePath3 As String Dim fileNumber As Integer Dim line As String Dim sheet1 As Worksheet Dim sheet2 As Worksheet Dim sheet3 As Worksheet Dim rowNumber As Long ' 要读取的三个文件路径 filePath1 = "C:\File1.txt" filePath2 = "C:\File2.txt" filePath3 = "C:\File3.txt" ' 创建新工作簿,并获取其中的三个工作表 Workbooks.Add Set sheet1 = ActiveWorkbook.Sheets(1) Set sheet2 = ActiveWorkbook.Sheets(2) Set sheet3 = ActiveWorkbook.Sheets(3) ' 在要写入数据的工作表中指定列的位置 Dim colName1 As String Dim colName2 As String Dim colName3 As String colName1 = "A" '第一个工作表要保存的列 colName2 = "B" '第二个工作表要保存的列 colName3 = "C" '第三个工作表要保存的列 ' 打开并读取第一个文件 fileNumber = FreeFile() Open filePath1 For Input As #fileNumber rowNumber = 1 Do Until EOF(fileNumber) Line Input #fileNumber, line ' 写入到指定的列中 sheet1.Range(colName1 & rowNumber).Value = line rowNumber = rowNumber + 1 Loop Close #fileNumber ' 打开并读取第二个文件 fileNumber = FreeFile() Open filePath2 For Input As #fileNumber rowNumber = 1 Do Until EOF(fileNumber) Line Input #fileNumber, line ' 写入到指定的列中 sheet2.Range(colName2 & rowNumber).Value = line rowNumber = rowNumber + 1 Loop Close #fileNumber ' 打开并读取第三个文件 fileNumber = FreeFile() Open filePath3 For Input As #fileNumber rowNumber = 1 Do Until EOF(fileNumber) Line Input #fileNumber, line ' 写入到指定的列中 sheet3.Range(colName3 & rowNumber).Value = line rowNumber = rowNumber + 1 Loop Close #fileNumber End Sub 在上面的代码中,我们首先设置了要读取的三个文件路径。 然后,我们使用 Workbooks.Add 函数创建了一个新的工作簿, 并使用 Set 语句获取了其中的三个工作表。 接下来,我们使用 colName1、colName2 和 colName3 这三个变量指定了每个工作表要写入数据的列的位置。 在每个文件处理循环中逐行读取每个文件的内容, 并使用 Range 函数将其写入到指定的列中。 请注意,上面的代码假定每个文件的内容在指定的列中是连续写入的, 且没有其他内容。如果每个文件的格式有所不同, 则可以根据需要更改 Range 函数的参数,以确保将数据正确地写入到工作表中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。