提问人:Aija 提问时间:11/3/2023 最后编辑:Mayukh BhattacharyaAija 更新时间:11/3/2023 访问量:65
Excel 中用于连接函数的 UDF
An UDF for Concatenate Function in Excel
问:
您好,我想知道是否可以使用 VBA/UDF 实现此结果?
基本上我想做的是能够连接来自不同单元格的各种字符串并获得显示的结果,而无需一遍又一遍地键入连接公式,而只有一个带有 VBA/UDF 的函数,因此我们可以根据所选单元格获得不同类型的结果。
我已经在互联网上通过创建模块来寻找方法,但其中大多数是使用范围。很抱歉,如果这是一个不合适的问题,因为我对 Excel 非常陌生,因此我无法展示我所取得的成就。非常感谢您的帮助!
答:
0赞
taller
11/3/2023
#1
这是一个没有任何参数验证的演示片段。
Option Explicit
Function MyConcat(text1, text2) As String
Application.Volatile
MyConcat = Range("C35") & " " & _
text1 & " " & Range("C36") & " " & text2
End Function
评论
0赞
FunThomas
11/3/2023
@user10186832:默认为“公共”。
1赞
Dominique
11/3/2023
#2
您真的确定您正在寻找用户定义的函数吗?
我的印象是,您正在寻找基于此公式的绝对和相对引用,如以下屏幕截图所示:
=C$35&C27&C$36&D27
如您所见,单元格“C35”和“C36”(变为“C$35”和“C$36”)的行号前面有一个美元符号。像这样,当我将公式拖动到下一行时,这些行号不会改变,结果保持不变。
0赞
VBasic2008
11/3/2023
#3
个性化的 concat 功能
M365 LAMBDA 公式
在 M365 中,您可以创建和调整以下 lambda 公式:
=LAMBDA(student,year,"The student named "&student&" is now on year "&year&".")
- 然后,使用名称管理器,您可以创建一个名称,例如 ,并在文本框中输入公式。
StudY
Refers to
- 现在,您可以简单地使用 .
=StudY(C31,D27)
- 然后,使用名称管理器,您可以创建一个名称,例如 ,并在文本框中输入公式。
VBA的
- 在 VBA 中,可以从如下所示的内容开始。
Function StudentYear(ByVal Student As String, ByVal Year As Long) As String
StudentYear = "The student named " & Student _
& " is now on year " & Year & "."
End Function
Function StudentYear2(ByVal Student As String, ByVal Year As Long) As String
Const BEFORE As String = "The student named "
Const BETWEEN As String = " is now on year "
Const AFTER As String = "."
StudentYear2 = BEFORE & Student & BETWEEN & Year & AFTER
End Function
评论
typing the concatenate formula over and over