[英]Truncate strings in visual basic excel macro
我有一列数据,其中包含不同长度的字符串,用逗号分隔。
以下是一些示例:
第一行:史密斯先生、詹姆斯纽、保罗西蒙
第 2 行:克雷格大卫
第 3 行:史蒂文·史密斯、卢克·奥康纳、菲利普
第 4 行:尼尔,瑞恩夫人
第 5 行:xyz、abc
我需要编写一个宏来自动删除单元格中除最后一个字符串之外的所有文本,即它应该将所有字符保留在最后一个逗号的右侧。
在上面的例子中,最终结果是:
第 1 行:保罗·西蒙
第 2 行:克雷格大卫
第 3 行:菲利普
第 4 行:瑞恩夫人
第 5 行:abc
您上面的预期结果示例似乎关闭了? 无论如何,这里是让您入门的代码,我为每个人提取了姓氏。 一旦它碰到逗号,它就会向后移动并获取字符串,直到它到达一个空格。
将文本框和标签添加到访问表单,将上面的内容添加到文本框中,您的标签将如下所示
史密斯新史密斯奥康纳尼尔瑞恩
Dim result As String Dim myarray myarray = Split(Me.Text1, ",") For i = 0 To UBound(myarray) Dim lastNameTemp lastNameTemp = Split(myarray(i), " ") Dim lastName As String lastName = lastNameTemp(UBound(lastNameTemp)) result = result & " " & lastName Next Me.Label1.Caption = Trim(result)
OK很简单,你需要的是逗号后的最后一个字符串,所以代码如下
Dim result As String Dim myarray myarray = Split(Me.Text1, ",") result = myarray(UBound(myarray)) Me.Label7.Caption = Trim(result)
如果存在,代码将拉取逗号后的最后一个字符串,否则拉取字符串。 现在您要做的就是遍历记录。 如果您需要更多帮助,请告诉我 –
我将 5 行放在单元格 A1、A2、A3、A4 和 A5 中。 我在excel文件中添加了一个按钮,代码如下。 按预期输出。 如果您需要更多帮助,请告诉我。 注释是以引用开头的行。
Sub Button1_Click() Dim x As Integer ' Set numrows = number of rows of data. NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count ' Select cell a1. Range("A1").Select ' Establish "For" loop to loop "numrows" number of times. For x = 1 To NumRows Dim theCellValue theCellValue = ActiveCell Dim result As String Dim myarray myarray = Split(theCellValue, ",") result = myarray(UBound(myarray)) ActiveCell.Offset(0, 1).value = Trim(result) ' Selects cell down 1 row from active cell. ActiveCell.Offset(1, 0).Select Next End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.