Joh*_*ley 4 excel vba excel-vba
遇到此错误的问题.我正在创建一个GA,循环是将我的适应值分配给一个数组.
一些变数
Dim Chromolength as integer
Chromolength = varchromolength * aVariables
Dim i as integer, j as integer, counter as integer
Dim Poparr() As Integer
Dim FitValarr() As Integer
Run Code Online (Sandbox Code Playgroud)
代码:
ReDim Poparr(1 To PopSize, 1 To Chromolength)
For i = 1 To PopSize
For j = 1 To Chromolength
If Rnd < 0.5 Then
Poparr(i, j) = 0
Else
Poparr(i, j) = 1
End If
Next j
Next i
For i = 1 To PopSize
j = 1
counter = Chromolength
Do While counter > 0
FitValarr(i) = FitValarr(i) + Poparr(i, counter) * 2 ^ (j - 1)
j = j + 1
counter = counter - 1
Loop
Next i
Run Code Online (Sandbox Code Playgroud)
我遇到问题:
FitValarr(i) = FitValarr(i) + Poparr(i, counter) * 2 ^ (j - 1)
Run Code Online (Sandbox Code Playgroud)
我道歉,我对VBA很新.
Dav*_*d W 18
当您创建一个整数表达式时,会出现溢出情况,该表达式的计算结果大于可以用16位有符号整数表示的值.给定表达式,FitValarr(i)的内容或表达式2 ^(j-1)可能溢出.建议将当前声明为Int的所有变量更改为Long.长整数是32位有符号值,并提供相应更大范围的可能值.