帮我转成vba自定义函数
题目
帮我转成vba自定义函数
目前已有公式,但使用时不方便,请高手帮我转换成自定义函数:=if(LEN(B6)16,"贷款卡编码必须为16位",if(RIGHT(CONCATENATE("0",1+MOD(SUM((FIND(MID(B6,{1,2,3},1),"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")-1)*{1,3,5})+SUM((FIND(MID(B6,{4,5,6,7,8,9,10,11,12,13,14},1),"0123456789")-1)*7,11,2,13,1,1,17,19,97,23,29}),97)),2)=MID(B6,15,2),"","贷款卡编码校验码错误"))
答案
ok
Function NumVerify(ChNum As String) As String
Dim Arr0toZ$, Arr0to9$, ArrChar$(1 To 14), Arr135, Arr729
Dim i%, x!
If Len(ChNum) <> 16 Then
NumVerify = "贷款卡编码必须为16位"
Exit Function
End If
For i = 1 To 14
ArrChar(i) = Mid(ChNum, i, 1)
Next i
Arr0toZ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Arr0to9 = "0123456789"
Arr135 = Array("1", "3", "5")
Arr729 = Array("7", "11", "2", "13", "1", "1", "17", "19", "97", "23", "29")
For i = 1 To 3
x = x + (WorksheetFunction.Find(ArrChar(i), Arr0toZ) - 1) * Arr135(i - 1)
Next i
For i = 4 To 14
x = x + (WorksheetFunction.Find(ArrChar(i), Arr0to9) - 1) * Arr729(i - 4)
Next i
If Right(1 + x Mod 97, 2) <> Mid(ChNum, 15, 2) Then
NumVerify = "贷款卡编码校验码错误"
End If
End Function
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
- 化简求值:x²-1/x-1+x(1+1/x),其中x=根号2-1
- "他最喜欢的运动是跑步"译成英语
- 22多1,33多2,55多4,77多6,这个数是什么
- 龟兔赛跑,全程200米,龟每分钟跑2.5米,兔每分钟跑32米,兔自以为是,在途中睡了一觉,当龟到
- How I study English well 作文
- 单句改错:I have a bottle of orange juice.Has some please
- 随机X、Y同分布,概率密度f(x)={3(x^2)/8 ,0a ,A、B相互独立,且P{AUB}=3/4 ,求a
- Fish lives in the water.Fish live in the water.哪个是正确的 为什么?
- 钟表8时30分,时针与分针所成的度数为
- 在三角行ABC中,求证:a=bcosC+ccosB b=ccosA+acosC c=acosB+bcosA
热门考点