使用VBA将CSV文件读入excel,然后将结果输出到特定的工作表

我一直在寻找一段时间,找不到一个简单的解决scheme。 我有一个csv文件,我想使用vba读入excel,并将结果输出到特定工作表上的特定单元格区域。

我一直在使用下面的代码,但是如果我运行两次excelmacros,它基本上将数据附加到下一个空白列而不是复制它。 它也只粘贴到活动工作表,而不是我的具体工作表。

有关如何做到这一点的任何build议?

谢谢,

Public Sub Example() Const csPath As String = "starting_positions.csv" Dim ws As Excel.Worksheet Set ws = Excel.ActiveSheet With ws.QueryTables.Add("TEXT;" & csPath, ws.Cells(1, 1)) .FieldNames = True .AdjustColumnWidth = True .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileCommaDelimiter = True ''// This array will need as many entries as there will be columns: .TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat) .Refresh End With End Sub 

假设您在同一工作簿中运行代码,您需要收集CSV数据,请尝试以下操作:

  1. Set ws = ThisWorkbook.Sheets(1)Set ws = ThisWorkbook.Sheets("Sheet1")replaceSet ws = Excel.ActiveSheet ,使用其索引或名称定义任何特定工作表。
  2. ws.UsedRange.ClearContents 先前 With...块会清除整个工作表,因此新数据将被放置在与之前相同的位置。

还有一个提示:如果你要多次使用这个macros,不要每次都创build一个新的连接。 如果所有选项都相似 – 只能使用.Refresh方法。

如果你坚持合并代码部分 – 尝试使用macroslogging器手动通过任何步骤。 对于你的情况,这将解决大多数的麻烦。 祝你好运!