Excel 将公式转换为用户函数
我建立了一个公式,将电子邮件地址与另一组数字中的数字分开。例如,我有数千种以下类型的字符串:
[电子邮件受保护]
公式后的结果: [email protected]
我的完美运行的 Excel 公式是: =右($A$6,LEN($A$6) LEN(左(A$6$, (匹配(TRUE,ISERROR(值(MID($A$6,ROW(间接("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
I built a formula the spits off an email address with number from another group of numbers. For example I have thousands of the following types of strings:
[email protected]
Result after Formula: [email protected]
My Excel formula which works perfectly is:
=RIGHT($A$6,LEN($A$6) LEN(LEFT(A$6$,
(MATCH(TRUE,ISERROR(VALUE(MID($A$6,ROW(INDIRECT("1:"&LEN($A$6))),1))),0))-1))).
With special notes on how I handled VALUE (changed it to VAL) and the INDERECT function ( is bracketed its calc [ xxx ], Here is the broken user function that I think should work, however; it just does not work.
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 Val()< /a> 函数获取前面的数字并将其替换为空字符串。
Use the Val() function to get the preceding number and just replace it with an empty string.