类型不匹配问题~~VB~~急!!

来源:百度知道 编辑:UC知道 时间:2024/06/22 15:08:18
各位高手帮忙看一上下面的程序:
Public Function Vigenerejia() 'Vignerejia加密
Dim i As Integer
dim a(100) as string
dim b(100) as string
For i = LBound(a) To UBound(a)
b(i) = (a(i) + subkey2(i) - 97 - 97) Mod 26 + 97(系统提示这里类型不匹配!!!)
Next i
End Function
指点一下!
dim subkey2(100) as string
我要的是a(100),b(100),subkey2(100)都是要是字符的,而这个函数的算法就是这样,我也不知道用VB怎么表示,如果用VAL()这个函数的话,原来的字符可能就会没了。有没有更好地办法,可以保持原来a(100)中的任何的字符呢?

我改成这样还是这个错误!大家再帮我看看应该怎么表示!谢谢
b(i) = Chr((Asc(a(i)) + Asc(subkey2(i)) - 97 - 97) Mod 26 + 97)

B() 是个字符串数组,怎么能用算术运算?先算好了在用 CStr 函数转换成字符串

val(b(i))=(val(a(i))+val(subkey2(i)) 97 - 97) Mod 26 + 97

错误原因:你所定义的数组a和数组b都是字符串类型的。这样不能进行计算,或者这样改b(i)=val((a(i)+subkey2(i)-97-97)mod 26 +97),或者将a(I)和b(i)都定义为长整型即可。

把string改成char试试看