首页 > 解决方案 > 尝试从列表中提取电子邮件地址时出现 Excel VBA 错误

问题描述

在尝试从单元格包含附加信息的电子表格中提取电子邮件地址时(根据https://smallbusiness.chron.com/extract-email-addresses-excel-spreadsheet-42777.html上的说明),我输入了:

Function ExtractCellEmail(cell As Range) As String

    Dim contents As String contents = cell.Text

    AtPosition = InStr(1, contents, "@")
    AddressStartingPosition = InStrRev(contents, " ", AtPosition)
    AddressEndingPosition = InStr(AtPosition, contents, " ")
    AddressEndingPosition = InStr(AtPosition, contents, " ")
    ActiveCell.Offset(0, 1).Value = emailAddress

End Function

我收到一条错误消息,上面写着

“预期:语句结束”

对于我输入的子功能

Sub Troyextract()
Sub mcrExtractColumnAddresses()

    Do
        Call ExtractEmails(ActiveCell)
        ActiveCell.Offset(1, 0).Select
    Loop Until IsEmpty(ActiveCell)

End Sub

我收到一条错误消息说

“预期结束子”

请帮忙。

特洛伊

标签: excel

解决方案


这需要是VBA吗?你可以用一个公式来做到这一点:

=IF(ISNUMBER(FIND("@",A1)),TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(" ",A1&" ",FIND("@",A1))-1)," ",REPT(" ",LEN(A1))),LEN(A1))),"")

推荐阅读