更新:2007 年 11 月
已经编写 For...Next 循环,由于存在以下情况,在该循环中编译器无法推断循环控制变量的数据类型:
没有用 As 子句指定循环控制变量的数据类型。
循环边界和步骤变量至少包含两种数据类型。
数据类型之间不存在标准转换。
因此,编译器无法推断循环的控制变量的数据类型。
在下面的示例中,步骤变量是一个字符,循环边界都是整数。因为字符与整数之间不存在标准转换,所以会报告此错误。
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
**错误 ID:**BC30982
更正此错误
根据需要更改循环边界和步骤变量的类型,至少使其中之一为其他项所扩大成的类型。在前面的示例中,将 stepVar 的类型更改为 Integer。
Dim stepVar = 1- 或 -
Dim stepVar As Integer = 1使用显式转换函数以将循环边界和步骤变量转换为相应的类型。在前面的示例中,将 Val 函数应用于 stepVar。
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next