excel - 从同一个单元格中分离电子邮件和网址

时间:2014-07-22 16:30:22

标签: excel excel-vba excel-formula vba

我在Excel中有一个如下所示的列表:

Column A
skfjkdf@kasldfj.com
fjls@fdkjd.comhttp://www.kdfj.com
dfkjdf@kdlfj.eshttp://djfkdsf
dkfjs@kljf.com
kjsfld@klfjlf.cahttp://www...

只有电子邮件地址的单元格 并且有一些单元格中包含电子邮件和网址(始终没有空格)

我希望单个电子邮件留在A栏 和那些分开的:电子邮件列A,URL列B

我尝试过TRIM,LEFT,RIGHT和SUBSTITUTE,但我无法理解。

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

我找到了两种方法来做到这一点。一个没有公式,一个有

  • 在Excel中,按 Ctrl + H 以显示“查找和替换”对话框。 将“http”替换为“http”(注意空格)

    然后选择要拆分的单元格并转到数据>文本到 列的。确保在空格上划分界限。

  • 仅提取电子邮件使用

    =LEFT(A1,SEARCH("http",A1,1)-1)
    

    仅提取网站使用

    =RIGHT(A1,LEN(A1)-SEARCH("http",A1,1)+1)
    

    这假定您的所有网站都以“http”

  • 开头

现在应拆分电子邮件和网址。

答案 1 :(得分:1)

这很快又脏,我肯定会受到批评,我欢迎它:)

    Sub test()

    Range("A1").Select
    Do Until ActiveCell = ""
        this = ActiveCell.Value
        iLen = Len(this)
        charnum = InStr(this, "http")
    If charnum <> 0 Then
        iLen2 = iLen - charnum + 1
        iLen3 = charnum - 1
        ActiveCell.Offset(0, 1).Value = Mid(ActiveCell.Value, charnum, iLen2)
        ActiveCell.Value = Left(ActiveCell, iLen3)
     Else
        ActiveCell.Offset(1, 0).Select
     End If
    Loop
   End Sub