如何使用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(替换为nothing(显示为"(。
https://www.auditexcel.co.za/blog/removing-line-breaks-from-cells-the-alt-enters/#:~:text=构建%20a%20公式%20到%20删除%20ALT%20ENTER%20换行符,-如果%20you%20需要&text=您%20可以%20创建%20这个%20字符,单元格%20有%20个%20换行符。
我的理解是,您将一封电子邮件转储到1个excel单元格中,并希望分隔一系列用换行符分隔的字符串[国家/地区、电子邮件等]?
我建议使用split函数将字符串分离成一个数组,然后在该数组中循环,将信息放入所需的单元格中。请注意,只有当每次项目的顺序相同时,这才会起作用,如果顺序可以更改,则需要添加数据验证步骤。即,如果inStr("@",[Range](,则它是一封电子邮件。。。
拆分([要拆分的字符串],[分隔符](https://learn.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时是电话#
等等。。。。