【问题标题】:Vba to break up text within a cell? Text to columns not workingVba分解单元格内的文本?文本到列不起作用
【发布时间】:2022-01-27 07:27:20
【问题描述】:

如何使用 vba 拆分单元格内的文本?我使用 vba 将电子邮件导出到 excel 文件,其中一个单元格中导出的信息的格式如下所示:

Name * xxxxxx
Country of residence * xxxxxx Email * xxxxx@gmail.com mailto:xxxxxxx@gmail.com
Mobile phone number * 0xxxxxx
Do you want to become a member of Assoc? Yes Check all that apply *

Members
Education
Ethical Conduct
Events
Regulation

我尝试了以下解决方案,但它不起作用。 来自文章:如果您需要构建一个公式来删除这些换行符,您只需要知道这个“字符”是 Excel 中的字符 10。您可以使用公式 =CHAR(10) 在 Excel 单元格中创建此字符。

所以要删除它,我们可以使用 SUBSTITUTE 公式并将 CHAR(10) 替换为空(显示为“”)。

https://www.auditexcel.co.za/blog/removing-line-breaks-from-cells-the-alt-enters/#:~:text=Building%20a%20formula%20to%20remove%20the%20ALT%20ENTER%20line%20breaks,-If%20you%20need&text=You%20can%20create%20this%20character,cell%20with%20no%20line%20breaks.

【问题讨论】:

  • 了解预期结果会很有用,另外,请将您尝试的解决方案作为问题的一部分包含在内,否则,如果提供的链接成功,没人会知道您在说什么死的。能否具体说说你遇到的问题是什么?
  • 你想insert line breaks吗?还是要remove line breaks

标签: excel vba


【解决方案1】:

我的理解是,您将一封电子邮件转储到 1 个 excel 单元格中,并希望将一系列字符串 [Country, Email, Etc.] 以换行符分隔?

我建议使用 split 函数将字符串分隔成一个数组,然后遍历该数组以将信息放入所需的单元格中。请注意,这仅在项目每次都处于相同顺序时才有效,如果顺序可以更改,那么您将需要添加数据验证步骤。即如果 inStr("@",[Range]) 那么它是一封电子邮件......

Split([要拆分的字符串], [分隔符]) https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/split-function

Dim strEmail as String 'Email dump
Dim arrEmail() as String 'Array for looping
Dim ItemsInArray as Integer 'Used to hold array count
Dim i as Integer 'Counter

strEmail = ActiveSheet.Cells("[Column,Row]") 'Cell your email dumps to
arrEmail = Split(strEmail, char(10)) 'Populate array
ItemsInArray = UBound(arrEmail) 'Get upper bound of array (total item count)

For i = 0 to ItemsInArray
    ActiveSheet.Cells("[Column,Row]") = arrEmail(i)
    Column + 1
Next i

当 i = 0 时,它是国家代码
当 i = 1 时,它是一封电子邮件
当 i = 2 时,它是电话 #
等等……

【讨论】:

  • 正是这样!我想拆分文本!我会上传一张它的样子和我想看到的照片。基本上,我将收到的项目记录在收件箱中。我记录日期、发件人、正文
  • 查看正在发生的事情的最佳方法是使用监视和即时窗口。所以突出显示您要监视的变量,右键单击,“添加监视”并在值更改时选择中断。然后,即时窗口是在代码运行时更改变量的绝佳工具。 debug.print [whataever you want to see] 将在即时窗口中显示它,但会更改正在运行的代码。 docs.microsoft.com/en-us/office/vba/language/reference/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 2016-05-13
相关资源
最近更新 更多