当前位置:   article > 正文

使用 VBA 读取三个文本文件,并将其内容分别保存在三个工作簿中_vba 多个文件时区分文件操作

vba 多个文件时区分文件操作

以下是一个使用 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) 中的列号,
以将数据保存在需要的列中。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71

**

使用 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)
    
    ' 在要写入数据的工作表中指定列的位置
    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 函数的参数,以确保将数据正确地写入到工作表中。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/661880
推荐阅读
相关标签
  

闽ICP备14008679号