我有一个数组(红色,蓝色,棕色,黑色)试图向用户窗体添加6个按钮“ right +3”和“ left +3”,以显示数组元素4的位置1至4。例如,元素3是显示“棕色”,然后单击“左+3”,文本框现在将显示元素4“黑”向左移动3、2、1、4的3个位置。现在,如果我单击“ right + 3”,它将显示“ brown”,因此它将向右移动3个位置,分别是4、1、2、3。 我可以从数组位置减去或加,但是如果im在位置4上并且我加3,则会得到错误,因为没有元素7:
MsgBox RARRY(4) + 3
答案 0 :(得分:0)
您实际上并未实际使用以1为底的数组吗?那将是第一个错误。
如果您有4个值,则
Count = 4
Redim Colours(Count-1)
数组应从0开始,因此有效索引应为0、1、2、3。
无论如何,您正在寻找的是Mod
函数。基本上,它会给您除法运算后的余数。以所需的方式移动数组索引非常有用。
Index = (Index + Offset + Count) Mod Count
使用Mod
函数将保证介于-Count+1
和Count-1
之间的值
Offset
是从-Count
到Count
的任何值。
+ Count
确保您实际上没有得到任何负值。
如果您坚持使用以1为底的数组,则公式变为
Index = ((Index - 1 + Offset + Count) Mod Count) + 1