将Excel外部数据转换为表格

9
我正在处理一份Excel电子表格,它从一个CSV文件中提取数据(由外部系统自动生成)。我使用了以下方法:
数据->获取外部数据->从文本
这个方法非常完美!
然而,我无法将导入的数据格式化为表格 :-(
它会显示以下信息:
您的选择与一个或多个外部数据范围重叠。您想将选择转换为表格并删除所有外部连接吗?
有没有一种方式可以在不断开连接的情况下将导入的数据格式化为表格呢?
谢谢
Martin

好问题,我也在问自己同样的事情,并且遇到了同样的问题。 - Spurious
2个回答

2

这应该对你有用 - 确保你有一个名为“Data”的选项卡,并将公共常量更改为文件路径。我假设你知道如何使用这段代码,如果不知道,请告诉我。

Public Const feedDir = "C:\Program Files\Common Files\System\data.csv"  'change this to the path of the file

Sub loadDataWrapper()
'''check file is in directory before proceding
If Dir(feedDir) <> "" Then
    fileToLoad = feedDir
Else
    MsgBox "No file available to load. Please check the path and try again."
    Exit Sub
End If

Call loadData(fileToLoad)

End Sub

Sub loadData(ByVal fileToLoad As String)
Dim fso As Object, textFile As Object: Set fso = CreateObject("Scripting.FileSystemObject")
Dim textFileStr As String
Dim textFileArr As Variant
Dim outputArr() As Variant
Dim oneRow As Variant
Dim numRows, numColumns As Long

'''open the text file and read into memory as is
Set textFile = fso.OpenTextFile(fileToLoad, 1)
textFileStr = textFile.ReadAll
textFile.Close

Set textFile = Nothing
Set fso = Nothing

'''find number of rows and columns of text file
textFileArr = Split(textFileStr, Chr(10))
numRows = UBound(textFileArr)
numColumns = UBound(Split(textFileArr(0), ","))
ReDim outputArr(numRows, numColumns)

'''go through every line and insert into array
For ii = 0 To (numRows - 1)
    oneRow = Split(textFileArr(ii), ",")
    For jj = 0 To numColumns
    outputArr(ii, jj) = oneRow(jj)

    Next jj
Next ii

'''output array to Worksheet
Worksheets("Data").Range("A2:Z1048576").ClearContents
Worksheets("Data").Range("A2").Resize(numRows + 1, numColumns + 1).Value = outputArr


End Sub

令人惊讶的是,在Excel中没有一种本地方法可以与表格结合使用进行CSV处理。 - skimania

0

透视表是否能满足您的需求?

Insert>PivotTable>Use External Data Source Radio Button

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接