截断visual basic excel宏中的字符串

时间:2016-03-26 06:41:44

标签: string excel excel-vba vba

我有一列包含不同长度字符串的数据,以逗号分隔。

以下是一些示例:

第1行:史密斯先生,詹姆斯新,保罗西蒙 第2行:Craig David
第3行:Steven Smith,Luke O' Connor,Philip 第4行:Niall,Ryan女士 第5行:xyz,abc

我需要编写一个宏,它将自动删除除单元格中最后一个字符串之外的所有文本,即它应该将所有字符保留在最后一个逗号的右侧。

在上面的例子中,最终结果是:

第1行:保罗西蒙
第2行:Craig David
第3行:菲利普 第4行:Ryan女士 第5行:abc

3 个答案:

答案 0 :(得分:1)

你上面的预期结果示例似乎关闭?无论如何这里是代码,让你开始,我拉出每个人的姓氏。一旦它命中逗号,它就会向后移动并获取字符串直到它到达空格。

在访问表单中添加一个文本框和标签,在上面的文本框中输入,您的标签将显示如下

Smith New Smith O' Connor Niall Ryan



    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)




答案 1 :(得分:0)

OK是直接的,你需要的是逗号之后的最后一个字符串,所以代码如下



    Dim result As String
    Dim myarray
    myarray = Split(Me.Text1, ",")
    result = myarray(UBound(myarray))
    Me.Label7.Caption = Trim(result)




代码将在逗号后面拉最后一个字符串(如果存在),否则它将拉取字符串。现在你所要做的就是遍历记录。如果您需要更多帮助,请告诉我 -

答案 2 :(得分:0)

我将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