能否利用EXCEL的VB编写这样一个公式?

2025-04-08 16:36:42
推荐回答(2个)
回答1:

下面代码复制到EXCEL的VBE里即可,函数为Jnal
=Jnal("B1","B3~B5","B8~B11","B14") 运算结果为 B1-B3-B4-B5-B8-B9-B10-B11-B14

Function JnAl(ParamArray arr())
Dim i%, j%, Nm$, Sarr$, Barr$, Rst$
For i = 0 To UBound(arr)
If UBound(Split(arr(i), "~")) = 1 Then
Sarr = Split(arr(i), "~")(0)
Barr = Split(arr(i), "~")(1)

For j = 1 To Len(Sarr)
If Asc(Mid(Sarr, j, 1)) >= 48 And Asc(Mid(Sarr, j, 1)) <= 57 Then
Nm = Left(Sarr, j - 1)
Exit For
End If
Next

For j = Right(Sarr, Len(Sarr) - Len(Nm)) To Right(Barr, Len(Barr) - Len(Nm))
Rst = Rst & "-" & Nm & j
Next
Else
Rst = Rst & "-" & arr(i)
End If
Next
JnAl = Right(Rst, Len(Rst) - 1)
End Function

回答2:

这个可以有,如果字母都是B的话会简单一些。还会有其他的字母吗?