房天下 > 房天下问答 > 业主生活 > 其他
  • vba宏, 下标越界,不知道什么原因,求解释

    Sub a()Dim a()For i = 2 To [q65536].End(xlUp).Row If Cells(i, 18) <> "" And Cells(i + 1, 18) = "" Then For j = 0 To UBound(a) If a(j) >= a(j + 1) Then Cells(i + j, 19) = "重复砂问题" End If Next ReDim a(j) a(j) = Cells(i, 12) j = j + 1ElseIf Cells(i, 18) <> "" And Cells(i + 1, 18) <> "" Then For j = 0 To UBound(a) If a(j) >= a(j + 1) Then Cells(i + j, 19) = "重复砂问题" End If NextElse a(j) = Cells(i, 12) j = j + 1 End IfNextEnd Sub不太懂,求前辈给点指点,我是新手,能给我个详细的点的解释么 北京市

    提问者:疯狂的兔纸

    发布于2013-08-30 北京市

共2个回答
  • czhnig 丨Lv 3
    你数组长度没定义。你唯一一次数组长度定义是在 if 选项中有一次ReDim a(j),可在那之前,你已经用到了 If a(j) >= a(j + 1),也就是判断a(0)>=a(1),可是a()既然没定义大小,就没有a(0)。不知道你表数据怎么组织,程序会怎么执行,但哪怕在第一句里写个Dim a(1)或Dim a(10)也许都有效(反正你迟早要ReDim的)。
    +1 2013-08-30 举报
  • 千影月 丨Lv 0
    你没有给数组a赋数,怎么循环? 且ReDim a(j)就把数组又初始化了,没数据
    +1 2013-08-30 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。