如何截取银行账号右侧10位数字计算RIP密钥?
修改VB银行账号密钥计算代码:截取右侧10位数字计算
需求明确:计算密钥时,需截取银行账号的右侧10位数字——若账号长度≤10则使用全部数字,若超过10位则仅保留最后10位。
原代码
Public Function RIP(Cle_RIP As String) As String If Cle_RIP = "" Then Cle_RIP = 0 End If RIP = Cle_RIP * 100 RIP = RIP - 97 * Int(RIP / 97) RIP = RIP + 85 If RIP < 97 Then RIP = RIP + 97 Else RIP = RIP End If RIP = RIP - 97 RIP = 97 - RIP If RIP < 10 Then RIP = "0" & RIP Else RIP = RIP End If End Function
修改后的代码
Public Function RIP(Cle_RIP As String) As String If Cle_RIP = "" Then Cle_RIP = "0" End If ' 截取右侧10位数字,长度不足则保留全部 Cle_RIP = Right(Cle_RIP, 10) RIP = CDbl(Cle_RIP) * 100 RIP = RIP - 97 * Int(RIP / 97) RIP = RIP + 85 If RIP < 97 Then RIP = RIP + 97 End If RIP = RIP - 97 RIP = 97 - RIP If RIP < 10 Then RIP = "0" & CStr(RIP) Else RIP = CStr(RIP) End If End Function
关键修改说明
- 截取右侧10位:添加
Cle_RIP = Right(Cle_RIP, 10),利用VB的Right函数直接获取字符串最后10个字符,若原字符串长度小于10,该函数会返回整个字符串,完全匹配需求。 - 类型转换优化:原代码直接用字符串乘100存在隐式转换风险,修改为
CDbl(Cle_RIP) * 100显式转换为数值类型,避免潜在错误;最后转字符串时用CStr显式转换,逻辑更清晰。 - 冗余分支移除:原代码中
Else RIP = RIP属于无意义的冗余逻辑,直接删除让代码更简洁。
内容的提问来源于stack exchange,提问作者snollygoster
相关产品推荐
相关产品推荐

