2016-02-25 192 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