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