从Excel中的单元格删除不必要的文本时出错

时间:2019-07-12 06:40:28

标签: excel vba

我在Excel中有一些公司地址-这是其中一个单元格的外观。任何单元格中的公司地址数量都不同。

abc
United Kingdom
Main Phone: 1234567
Main Fax: 63273818
Other Phone: 53177188

dfr
China


rtg
United States
Main Phone: 2434571
Main Fax: 3278188
Other Phone: 31771988

What I want as a outcome is 

abc
United Kingdom

dfr
China

rtg
United States

我也曾问过这个问题。有人很好地分享了此代码

Function remo(txt As String) As String 
    txt1 = Split(txt, Chr(10) & Chr(10))

    For i = LBound(txt1) To UBound(txt1)    
        remo = remo & Left(txt1(i), InStr(1, txt1(i), "Main") - 1) & Chr(10) & Chr(10)
        Debug.Print txt2
    Next
End Function

但是,这仅在每个地址(单元格内)中都带有“ Main”时才起作用。如果不是,则抛出错误。这是我第一个问题How to delete some text in-between a string in a cell in excel的链接。如果有人可以帮助解决此问题,那就太好了。非常感谢。

1 个答案:

答案 0 :(得分:0)

查看是否可行:

添加了一个If条件来检查Main。

Function remo(txt As String) As String

    txt1 = Split(txt, Chr(10) & Chr(10))

    For i = LBound(txt1) To UBound(txt1)

        If InStr(1, txt1(i), "Main") > 1 Then
            remo = remo & Left(txt1(i), InStr(1, txt1(i), "Main") - 1) & Chr(10) & Chr(10)
        Else: remo = remo & txt1(i) & Chr(10) & Chr(10)
        End If

    Next

End Function

您应该尝试使用该代码,以使其变得有用。