首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA宏运行时错误6:循环内的溢出编码

VBA宏运行时错误6:循环内的溢出编码
EN

Stack Overflow用户
提问于 2012-09-26 01:54:16
回答 3查看 75.4K关注 0票数 8

有关于这个错误的问题。我正在创建一个GA,循环是将我的适应值分配给一个数组。

其中的一些变量

代码语言:javascript
复制
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

代码:

代码语言:javascript
复制
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      

我在以下方面遇到问题:

代码语言:javascript
复制
FitValarr(i) = FitValarr(i) + Poparr(i, counter) * 2 ^ (j - 1) 

我很抱歉,我是VBA的新手。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-26 02:15:02

当您创建的整数表达式的计算结果大于可用16位有符号整数表示的值时,就会出现溢出条件。给定该表达式,FitValarr(i)或表达式2^(j-1)的内容都可能溢出。建议将当前声明为Int的所有变量更改为Long。长整型是32位带符号的值,并提供相应更大范围的可能值。

票数 23
EN

Stack Overflow用户

发布于 2019-08-23 22:47:07

我也有同样的运行时错误6.经过多次调查,l发现我的错误是一个简单的“除以零”错误。

票数 0
EN

Stack Overflow用户

发布于 2019-09-04 23:39:08

我设置了一个整数值来保存邮政编码,错误6事件一直困扰着我-直到我意识到邮政编码85338超出了整数的容量……虽然我不认为邮政编码是一个“值”,但它确实被解释为一个“值”。我怀疑同样的情况也可能发生在地址和其他“非数字”数值上。将变量更改为字符串解决了此问题。我只是没有想到邮政编码是一个“数字值”。学到的教训。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12588485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档