-1
在下面的代碼中,爲什麼在x = i^3時出現溢出錯誤?VBA,另一個溢出錯誤
Dim i As Long, x As Long, s As Long, k As Byte
Do
i = i + 1
x = i^3
Dim n As Long, j As Long, b As String
b = CStr(x)
n = Len(b)
For j = 1 To n
s = s + Val(Mid$(b, j, 1))
Next
If s = i Then
k = k + 1
Debug.Print i
End If
Loop Until k = 6
當我取出,與暗淡n的長開始,並以對循環結束的代碼的部分,並把它變成一個輔助功能,然後將剩餘的代碼的工作(即,沒有溢出錯誤在x = i^3)。
你的代碼是如此晦澀,很難看到i'只是多少'遞增。 「Long」可以容納的數字的大小是有限制的。一旦'i'超過1290,'i^3'溢出很長時間。在回答您的其他問題時,我建議您需要使用變體的小數子類型來完成您似乎正在嘗試做的事情。該建議仍然成立。 –
另外 - 請注意,您不會在連續循環中重置's'。如果你的意圖是得到'x'中數字的總和,那麼你可能應該在for循環之前將's'置於0。 –
您的評論,我需要將循環前重置s爲0,我認爲這解決了我的問題。再次感謝! – TylerC