Arrays 如何在vba中创建数组中的for循环
我已经尝试了一遍又一遍,但得到了相同的输出。我想在字符串数组中创建一个循环,但代码只访问第一个值。这是我尝试过的代码:Arrays 如何在vba中创建数组中的for循环,arrays,vba,excel,Arrays,Vba,Excel,我已经尝试了一遍又一遍,但得到了相同的输出。我想在字符串数组中创建一个循环,但代码只访问第一个值。这是我尝试过的代码: 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(
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
循环中使用时,它将采用值为0的变量数字类型
因此,对于i=0到0,您将得到:即循环将迭代一次
在模块顶部编写Option Explicit
,有助于减少此类错误
如果要获得数组的大小,请使用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
非常感谢您的指导 谢谢你给我一个主意。这真的让我很高兴:),但我现在的问题是,如果这两个数组中的任何一个都没有识别出来怎么办?我更希望看到I=LBound(user1)到UBound(user1)
。这样,就不会对数组的基进行硬编码。