2011-07-08 34 views
2

我有一個郵件列表,其中包含大量招股說明書的名稱和地址,取自excel文檔中的.tab文件。但地址包含在一個單元格內,每行由回車分隔。需要Excel VBA宏根據特定字符將單元劃分爲多個單元格

我真的需要一個宏,我可以運行它將不同的部分分成不同的單元格。我基本上知道結構,但不知道VBA的功能。

它需要掃描,直到出現一個回車符,把前面的數據減去回車符到一個新的單元格中,然後繼續,直到單元格中沒有剩餘字符爲止,因爲末尾沒有回車符。

這可能嗎?

回答

4

這裏VBA宏代碼:

Dim rngSource As Range 
Dim rngDestination As Range 

Set rngSource = Sheet1.Range("A1:A5") ' or wherever your list is 
Set rngDestination = Sheet1.Range("C1") ' parsed data will be placed here 

rngSource.TextToColumns _ 
    Destination:=rngDestination , _ 
    DataType:=xlDelimited, _ 
    Other:=True, _ 
    OtherChar:=vbLf ' This is where you define your delimiter character 

其中vbLf相同Chr(10),假設這是你的分隔符。根據您的回車風格,您可能需要使用vbCr(或等效地,Chr(13))。

請注意,@Jon Egerton的非宏觀方式做得很好。但是,如果需要多次執行,我傾向於厭倦所有的點擊,選擇,打字,複製,特殊粘貼,粘貼到錯誤的地方,不得不重新開始等等。我發現VBA宏很多更可重用。這是一個口味問題,我猜。

+0

謝謝,這正是我正在尋找的。完美的作品。 – Murray

4

你可以做到這一點沒有VBA如下:

(我假設你的數據在A列)

  1. 使用此公式列B來代替回車:=SUBSTITUTE(A1,CHAR("10"),"|")
  2. 複製B列並使用PasteSpecial - 值將實際數據複製到列C中
  3. 使用列C上的Text-To-Columns將文本拆分爲|成從d獨立細胞起

希望這有助於

+0

+1 Aha,'SUBSTITUTE'! –

+0

@Jean:我總是忘記它不是REPLACE。 –

+0

非常感謝。它完美的工作,但我從編程背景,所以更喜歡只運行宏的簡單。但我真的很感謝幫助! – Murray

相關問題