如何在VBA数组中创build一个循环

我一直尝试这个一遍又一遍,但得到了相同的输出。 我想在一个string数组中循环,但代码只访问第一个值。 这是我试过的代码:

name = Environ("username") user1= Array("name.name1", "name.name2") user2= Array("name1.name1", "name1.name2") For i = 0 To Size ' I used Size coz I will add more names If name = user1(i) Then MsgBox "User1" ElseIf name = user2(i) Then MsgBox "User2" Else errorLog End If Next 

预先感谢您的帮助!

除非你已经为Size提供了一个明确的声明和起始值,否则当它在for循环中使用时,它将假定variables数值types的值为0。

所以你得到For i = 0 To 0 :即循环将迭代一次。

Option Explicit位于模块的顶部有助于减less这样的错误。

如果你想获得一个数组的大小,使用LBoundUBound

这是我所做的解决我的问题。

 name = Environ("username") Dim found as Boolean found = false user1= Array("name.name1", "name.name2") user2= Array("name1.name1", "name1.name2") 'to check for user2 For i = 0 To UBound(user1) If name = user1(i) Then MsgBox "User1" found = true End If Next 'to check for user2 For i = 0 To UBound(user2) If name = user2(i) Then MsgBox "User2" found = true End If Next 'Else if the username is not on the list, I have added a Boolean found. if found = false then MsgBox "Unidentified Access!" end If 

非常感谢你的指导!