VBA提取CSV后三列数据到Excel新工作表

本文将介绍如何使用VBA代码,从CSV文件中提取后三列数据,并将它们复制到Excel当前工作簿的新工作表中。

VBA代码示例

以下是实现该功能的VBA代码:vbaSub 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:C1') ' 导入后三列数据 With ws.QueryTables.Add(Connection:='TEXT;' & filePath, Destination:=targetRange) .TextFileParseType = xlDelimited .TextFileCommaDelimiter = True ' CSV文件逗号分隔 .Refresh .Delete End With End IfEnd Sub

代码解释

  1. 选择CSV文件: 代码首先使用Application.GetOpenFilename方法弹出一个对话框,让用户选择要导入的CSV文件。2. 创建新工作表: 如果用户选择了文件,代码会创建一个新的空白工作表,并将其命名为'Sheet1'。3. 设置目标范围: targetRange变量用于指定数据复制的目标范围,这里设置为新工作表的A1到C1单元格,即前三列。4. 导入数据: 代码使用QueryTables.Add方法将CSV文件导入到目标范围。 - Connection属性指定了CSV文件的路径。 - Destination属性指定了数据导入的目标范围。 - TextFileParseTypeTextFileCommaDelimiter属性用于设置CSV文件的解析方式,这里设置为逗号分隔。 - Refresh方法用于刷新查询表,将数据实际导入到工作表中。 - 最后,使用.Delete方法删除查询表,避免留下不必要的对象。

代码使用方法

  1. 打开Excel工作簿,按下Alt+F11打开VBA编辑器。2. 在VBA编辑器中插入一个新的模块。3. 将上述代码粘贴到模块中。4. 关闭VBA编辑器,回到Excel界面。5. 运行代码:可以通过开发者工具中的“运行宏”功能找到并运行CopyLastThreeColumnsFromCSV宏。

注意事项

  • 该代码默认将数据导入到名为'Sheet1'的新工作表中,您可以根据需要修改代码中的工作表名称。- 目标范围可以根据实际需求进行调整,例如将数据导入到其他列或其他工作表。

希望本文能够帮助您使用VBA代码轻松地从CSV文件中提取后三列数据并将其导入到Excel工作表中。


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

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