如何在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这样的错误。
如果你想获得一个数组的大小,使用LBound
和UBound
。
这是我所做的解决我的问题。
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
非常感谢你的指导!