当我运行以下代码时,我正面临'编译错误:语法错误':
c_bound_h()是一个索引从0到j的数组。让我们假设j的值是3(对于这个例子),其中的值在下面给出。工作表行中的数据根据这些限制进行排序。例如,从row2到row1507 ='Value 1',第1508行直到row3013 ='Value 2',依此类推。
我希望通过在For循环中传递这些限制来遍历每个数据类。但是,它给出了语法错误。
j = 3
c_bound_h(0) = 2
c_bound_h(1) = 1508
c_bound_h(2) = 3014
c_bound_h(3) = 4519
'我希望通过在For循环中传递这些限制来遍历每个数据类。但是,它给出了语法错误。
For L = 0 To j
For c_bound_h(L) To c_bound_h(L+1)-1
Next L
答案 0 :(得分:0)
修改代码如下:
For L = 0 To j
For K= c_bound_h(L) To c_bound_h(L+1)-1
Next K
Next L
答案 1 :(得分:0)
使用L = 1至J-1 ....
因为否则c_bound_h(L + 1)将超出范围
答案 2 :(得分:0)
您是否将c_bound_h声明为整数?
我将此代码放入工作簿中,它对我来说非常好: -
Sub test()
j = 3
Dim c_bound_h(4) As Integer
c_bound_h(0) = 2
c_bound_h(1) = 1508
c_bound_h(2) = 3014
c_bound_h(3) = 4519
For L = 0 To j
For k = c_bound_h(L) To c_bound_h(L + 1) - 1
MsgBox ("pass")
Next k
Next L
End Sub
答案 3 :(得分:0)
需要通过一次比较2个值来防止不必要的循环,但不要超过数组限制。这基于'Don Relentless'代码,但略有修改。
Sub test()
j = 3
Dim c_bound_h(0 to 3) As Integer
c_bound_h(0) = 2
c_bound_h(1) = 1508
c_bound_h(2) = 3014
c_bound_h(3) = 4519
For L = 1 To j
For k = c_bound_h(L-1) To c_bound_h(L) - 1
debug.print "pass row " & k
Next k
Next L
End Sub