使用 VBA 将 CSV 文件中的后三列数据复制到当前工作簿的空白 Sheet1 中,可以使用以下代码:

Sub CopyLastThreeColumnsFromCSV()
    Dim filePath As String
    Dim ws As Worksheet
    Dim targetRange As Range
    
    ' 选择要导入的 CSV 文件
    filePath = Application.GetOpenFilename('CSV Files (*.csv), *.csv')
    
    ' 检查是否选择了文件
    If filePath <> 'False' Then
        ' 创建新的空白工作表
        Set ws = ThisWorkbook.Worksheets.Add(, ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
        ws.Name = 'Sheet1'
        
        ' 设置目标数据范围
        Set targetRange = ws.Range('A1').Resize(ws.Rows.Count, 3)
        
        ' 导入后三列数据
        With ws.QueryTables.Add(Connection:='TEXT;' & filePath, Destination:=targetRange)
            .TextFileParseType = xlDelimited
            .TextFileCommaDelimiter = True ' CSV 文件逗号分隔
            .Refresh
            .Delete
        End With
    End If
End Sub

在这个例子中,我们首先使用 Application.GetOpenFilename 方法选择要导入的 CSV 文件。

然后,我们创建一个新的空白工作表,并将其命名为 'Sheet1'。

接下来,我们设置目标数据范围 (targetRange 变量),这里我们假设将后三列数据放置在 Sheet1 的第一列,你可以根据需要进行调整。

然后,我们使用 QueryTables 对象的 Add 方法将 CSV 文件导入到目标数据范围中。我们设置了连接字符串来指定 CSV 文件的路径,然后指定了文本文件的解析类型、分隔符等属性。最后,我们调用 Refresh 方法来刷新查询表,然后立即将其删除。

请注意,在导入 CSV 文件之前,该方法会创建一个新的空白工作表,并将数据导入到该工作表中。如果你希望将数据导入到已经存在的 Sheet1 中,请将第 8 行中的 ws.Name = 'Sheet1' 注释掉或删除。

你可以将上述代码粘贴到 VBA 编辑器中的一个新的子过程中,然后运行该过程,以实现将 CSV 文件中的后三列数据复制到当前工作簿的空白 Sheet1 中。请在运行代码之前保存好工作簿。


原文地址: https://www.cveoy.top/t/topic/SdM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录