Excel将外部数据导入表中
我正在制作一个excel电子表格,它从CSV文件(由外部系统自动生成)中获取数据。 我使用了: 数据->获取外部数据->来自文本 它工作得很好 但是,我无法将导入的数据格式化为表格:-( 它给出了以下信息: 所选内容与一个或多个外部数据区域重叠。是否将所选内容转换为表并删除所有外部连接 有没有一种方法可以在不中断连接的情况下将导入的数据格式化为表 谢谢Excel将外部数据导入表中,excel,excel-2007,vba,Excel,Excel 2007,Vba,我正在制作一个excel电子表格,它从CSV文件(由外部系统自动生成)中获取数据。 我使用了: 数据->获取外部数据->来自文本 它工作得很好 但是,我无法将导入的数据格式化为表格:-( 它给出了以下信息: 所选内容与一个或多个外部数据区域重叠。是否将所选内容转换为表并删除所有外部连接 有没有一种方法可以在不中断连接的情况下将导入的数据格式化为表 谢谢 马丁:透视表能满足您的要求吗 Insert>PivotTable>Use External Data Source Radio Bu
马丁:透视表能满足您的要求吗
Insert>PivotTable>Use External Data Source Radio Button
这应该对您有用-确保您有一个名为Data的选项卡,并且您将public const更改为文件的路径。我假设您知道如何处理此代码,如果不让我知道的话
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
将此更改为文件路径
子loadDataWrapper()
''在继续之前检查文件是否在目录中
如果Dir(feedDir)“,则
fileToLoad=feedDir
其他的
MsgBox“没有可加载的文件。请检查路径并重试。”
出口接头
如果结束
调用loadData(fileToLoad)
端接头
子加载数据(ByVal fileToLoad As String)
Dim fso作为对象,textFile作为对象:Set fso=CreateObject(“Scripting.FileSystemObject”)
Dim textFileStr As字符串
Dim textFileArr作为变量
Dim outputArr()作为变量
Dim oneRow作为变体
暗淡的数字,和长一样的数字列
''打开文本文件并按原样读入内存
设置textFile=fso.OpenTextFile(fileToLoad,1)
textFileStr=textFile.ReadAll
文本文件,关闭
设置textFile=Nothing
设置fso=无
''查找文本文件的行数和列数
textFileArr=Split(textFileStr,Chr(10))
numRows=UBound(textFileArr)
numColumns=UBound(拆分(textFileArr(0),“,”))
ReDim输出端(numRows,numColumns)
''遍历每一行并插入数组
对于ii=0到(numRows-1)
oneRow=拆分(textFileArr(ii),“,”)
对于jj=0到numColumns
outputArr(ii,jj)=oneRow(jj)
下一个jj
下一个ii
''将数组输出到工作表
工作表(“数据”).Range(“A2:Z1048576”).ClearContents
工作表(“数据”).Range(“A2”).Resize(numRows+1,numColumns+1)。Value=outputArr
端接头
问得好,我问自己同样的问题,也有同样的问题。令人惊讶的是,excel中没有一种原生的方式与表格结合使用来处理csv