Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel将外部数据导入表中_Excel_Excel 2007_Vba - Fatal编程技术网

Excel将外部数据导入表中

Excel将外部数据导入表中,excel,excel-2007,vba,Excel,Excel 2007,Vba,我正在制作一个excel电子表格,它从CSV文件(由外部系统自动生成)中获取数据。 我使用了: 数据->获取外部数据->来自文本 它工作得很好 但是,我无法将导入的数据格式化为表格:-( 它给出了以下信息: 所选内容与一个或多个外部数据区域重叠。是否将所选内容转换为表并删除所有外部连接 有没有一种方法可以在不中断连接的情况下将导入的数据格式化为表 谢谢 马丁:透视表能满足您的要求吗 Insert>PivotTable>Use External Data Source Radio Bu

我正在制作一个excel电子表格,它从CSV文件(由外部系统自动生成)中获取数据。 我使用了:

数据->获取外部数据->来自文本

它工作得很好

但是,我无法将导入的数据格式化为表格:-(

它给出了以下信息:

所选内容与一个或多个外部数据区域重叠。是否将所选内容转换为表并删除所有外部连接

有没有一种方法可以在不中断连接的情况下将导入的数据格式化为表

谢谢
马丁:透视表能满足您的要求吗

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