2016-02-25 106 views
0

我使用Get External Data命令从另一个Excel文件中获取数据。数据的问题是我不能像单元格一样进行操作,因为类型不匹配错误。因此,我想使用Text to columns命令来转换每列,但是使用VBA(将宏记录到每列)有这种限制。如何更改数据格式,有时我的代码比我需要的更短,有时比我需要的时间更长。在这两种情况下,当我执行代码时都会出现错误。现在我正在寻找可以适应列中各种数据范围的代码。我可以做的是循环限制数据的大小,并将每个单元格转换为相同的类型并运行我的VBA代码以进行分析。我对此感到困惑,所以我没有任何代码可以在这里分享。有人能帮我吗?将文本转换为列

我得到的东西

Dim rng As Range 

For Each rng In Range("A:D").Columns 
    rng.TextToColumns 
Next rng 

但是,当我发现一些空的数据,我被困。如何确定范围是否为空?

回答

0

我不知道实际的答案是什么,但问题让我owndering为什么GetExternalData抛出一个类型不匹配的错误,我用Google搜索了一会儿,发现这一点:

似乎有没有“类型不匹配”错误的有效原因,这只是Excel的偏心。如果您在使用变量后在数组中开始一个新行,它会使它变得快乐。因此reformating的程序是这样的:

With ActiveSheet.QueryTables.Add(Connection:=Array(_ Array("ODBC;DSN=Excel Files;DBQ=H:\DATA" & Subdirectory & DataFile (DataFileNum)), _ Array(";DefaultDir=H:\DATA" & Subdirectory), _ Array(";DriverId=790;MaxBufferSize=2048;PageTimeou t=5;")), Destination:=ActiveCell)

应该解决您的 “类型不匹配” 的错误。我希望这对某个人有好处。

找到它here