需要Excel VBAmacros根据特定字符将单元分成多个单元

我有一个邮件列表,里面装满了大学招股说明书的名称和地址,这些邮件列表是从一个.tab文件中取得的。 但是地址被包含在一个单元格中,每一行由一个回车符分开。

我真的需要一个macros,我可以运行,将不同的部分分成不同的单元格。 我基本上知道结构,但不知道VBA的能力。

它需要扫描,直到出现一个回车符,把前面的数据减去回车符到一个新的单元格中,然后继续直到单元格中没有剩余字符,因为在末尾没有回车符。

这可能吗?

这里是你的VBAmacros代码:

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 

其中vbLfChr(10)相同,假设这是您的分隔符。 根据您的回车风格,您可能需要使用vbCr (或者等价地, Chr(13) )。

请注意,@Jon Egerton的非macros观方式可以正常工作。 但是,如果需要多做一次,我往往厌倦了所有的点击,select,打字,复制,特殊粘贴,粘贴在错误的地方,不得不重新开始等。我发现VBAmacros很多更可重用。 我想,这是一个口味问题。

你可以做到这一点没有VBA如下:

(我假设你的数据在列A)

  1. 在列B中使用此公式来replace回车符: =SUBSTITUTE(A1,CHAR("10"),"|")
  2. 复制列B并使用PasteSpecial – Values将实际数据复制到列C中
  3. 使用列C上的文本到列将文本拆分为| 从D开始分成​​不同的单元格

希望这可以帮助