Excel 将公式转换为用户函数

发布于 2025-01-10 04:10:52 字数 960 浏览 0 评论 0原文

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

[电子邮件受保护]
公式后的结果: [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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幽蝶幻影 2025-01-17 04:10:52

使用 Val()< /a> 函数获取前面的数字并将其替换为空字符串。

Val 函数在第一个字符处停止读取字符串
它无法识别为数字的一部分。

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

Use the Val() function to get the preceding number and just replace it with an empty string.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文