Excel 将公式转换为用户函数

Excel Convert Formula to User Function

我建立了一个公式,从另一组数字中吐出一个电子邮件地址。例如,我有数千种以下类型的字符串:

2064439215Wilma33@flintstone.com
公式后的结果:Wilma33@flintstone.com

我的 Excel 完美运行的公式是: =右($A$6,LEN($A$6) LEN(左(A$6$, (匹配(真,错误(值(中间($A$6,行(间接(“1:”&LEN($A$6))),1))),0))-1)))。 关于我如何处理 VALUE(将其更改为 VAL)和 INDERECT 函数(括号中包含其 calc [ xxx ] 的特别说明,这是我认为应该起作用的损坏的用户函数,但是它不起作用。

  Function Test(Cell_Addrs As Range)
    
     NewString = Right(Cell_Addrs, Len(Cell_Addrs) - Len(Left(Cell_Addrs, _ 
    (Application.WorksheetFunction.Match _
    (True, IsError(Val(Mid(Add_Rss, Application.WorksheetFunction.Row _
    ([INDIRECT("1:" & Len(Cell_Addrs))]), 1))), 0)) _ 
    - 1)))

    Test = NewString

End Function

使用Val()函数获取前面的数字,将其替换为空字符串即可。

The Val function stops reading the string at the first character that it can't recognize as part of a number.

Public Function ToEmail(rng As Range) As String
    ToEmail = Replace(rng.Value, Val(rng.Value), vbNullString)
End Function