無法推斷 '<variablename>' 的型別,因為迴圈繫結和 step 子句不會擴展為相同型別
更新:2007 年 11 月
您已撰寫 For...Next 迴圈,但因為下列條件為 true,編譯器無法推斷此迴圈控制變數的資料型別:
沒有使用 As 子句指定迴圈控制變數的資料型別。
迴圈繫結和 step 變數至少包含兩個資料型別。
資料型別之間沒有標準轉換。
因此,編譯器無法推斷迴圈控制變數的資料型別。
在下列範例中,step 變數是字元,而迴圈繫結則都是整數。由於字元和整數之間沒有標準轉換,將會報告此錯誤。
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
錯誤 ID:BC30982
若要更正這個錯誤
依需要變更迴圈繫結和 step 變數的型別,讓其中一項的型別是其他迴圈繫結和 step 變數要擴展的目標型別。在先前的範例中,將 stepVar 型別變更為 Integer。
Dim stepVar = 1
-或-
Dim stepVar As Integer = 1
使用明確轉換函式,將迴圈繫結和 step 變數轉換為適當的型別。在先前的範例中,將 Val 函式套用到 stepVar。
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next