2013-07-24 47 views
0

我有哪些我想此刻解決的一個問題。 它涉及在excel文件中轉換格式,這讓我發瘋。Excel的VBA:如何改善這種代碼(一系列行文本特徵)

Import raw data from excel into another excel

現在我已經找到一種方法,我很樂觀,它可以解決的問題。 「修理」這我使用的功能「的文本行」 - >爲VBA記錄爲

Selection.TextToColumns Destination:=range("A1"), DataType:=xlDelimited, _ 
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ 
    :=Array(1, 1), TrailingMinusNumbers:=True 

我已經學會了,有可能使用此代碼來解決一行但不是很多立刻。 現在我想知道,這個代碼可以如何改進,這一次解決一個範圍(「A7」,「DR621」)。

我會很高興,如果有人可以幫助我,指出我在正確的方向。

在此先感謝 亞瑟

編輯:排序誤差截圖

http://www.xup.in/dl,78038715/date_wrong_sorting.jpg/

+0

這裏的問題是,當你將文本轉換爲列,這將覆蓋內容是文本旁邊的列。如果您確信導入的數據後面有足夠的空白列,那麼您可以循環使用上面的代碼,將「A1」更改爲需要文本到列的任何列。看看你以前的帖子,你的傳入數據有可能被製表符分隔爲* .xls擴展名 - 這就是爲什麼它被粗略地導入。 – RowanC

+0

@RowanC - 謝謝! RE:製表符分隔 - 可能。 MySQL導出是通過一個PHP腳本完成的。輸出爲excel(* .xlsx)。原始數據excel我嘗試在包含幾個簡單宏的表單中導入,以便對無經驗的用戶進行排序和導航。 – Arthur

+0

如果您可以更具體地瞭解您需要的「修復」,我們也可以更有幫助。 –

回答

0

How to parse data using the Text To Columns command in Excel

你轉換可能包含許多行的範圍,但你只能一次轉換一列數據

可以循環列這樣的事情(所示例的偏移量爲5列在同一張紙上):

For Each c In Selection.Columns 
    c.TextToColumns Destination:=Cells(c.Row, c.Column + 5), DataType:=xlDelimited, _ 
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ 
    :=Array(1, 1), TrailingMinusNumbers:=True 
Next 
+0

感謝revoua的快速響應! 有沒有可能通過任何類型的循環自動執行此操作? – Arthur

+0

@Arthur看到更新:+例子。 – revoua

+0

感謝您的代碼示例! – Arthur