VB6 val(parseString())提供类型不匹配,但调试时不提供

VB6 val(parseString())提供类型不匹配,但调试时不提供,vb6,double,type-mismatch,Vb6,Double,Type Mismatch,我有一个给双数组赋值的代码。它似乎是通过一个错误“类型不匹配” 疯狂的是,如果我先debug.print输出val()函数中的内容,错误就不会发生 Debug.Print parseString(curpos, dummy, delimit) datamax(i) = val(parseString(curpos, dummy, delimit)) 有什么想法吗?因为您没有显示足够的代码,所以无法判断错误所在,但是如果我想猜测它为什么与前面的DebugPrint一起工作,我会说发送到parse

我有一个给双数组赋值的代码。它似乎是通过一个错误“类型不匹配”

疯狂的是,如果我先debug.print输出val()函数中的内容,错误就不会发生

Debug.Print parseString(curpos, dummy, delimit)
datamax(i) = val(parseString(curpos, dummy, delimit))

有什么想法吗?

因为您没有显示足够的代码,所以无法判断错误所在,但是如果我想猜测它为什么与前面的DebugPrint一起工作,我会说发送到parseString的参数是ByRef,并且正在更新。在第二次调用时,结果必须略有不同。尝试执行两次调试。一行打印:

Debug.Print "--->" & parseString(curpos, dummy, delimit) & "<---"
Debug.Print "--->" & parseString(curpos, dummy, delimit) & "<---"

Debug.Print”-->“&parseString(curpos,dummy,diffract)&”&parseString(curpos,dummy,diffract)&“显示parseString的代码和输入值(
curpos
dummy
diffract
)Val()通常是一个糟糕的选择,因为它不是本地化的,并且总是将“.”作为小数点。CDbl在大多数情况下都是首选。不过只是一个旁注,它不能解释您的类型不匹配。显然,您的parseString()就是问题所在。
Debug.Print "--->" & parseString(curpos, dummy, delimit) & "<---"
Debug.Print "--->" & parseString(curpos, dummy, delimit) & "<---"