循环添加到数组?
Loop adding to array?
我正在尝试从 DL 中的 AD 获取成员并将这些成员添加到数组中,同时还将它们显示在列表框中。我的问题是数组表示数组中有 8 个元素,但列表框显示 7。因此,当从列表框中的内容从 0 开始计数时,它应该说 6,而不是 8。此外,当 objGroup.Members由于我返回的 distGroup 而发生变化,数组也保持在 8,而它应该更多。谁能帮我?我不是 VB 大师。
Dim distGroup As String
Dim asset As String
Dim distArray() As String
Dim distArrayElements As Integer = 0
Sub getMembers()
Dim objGroup, objUser, objFSO, strDomain
assetListBox.Items.Clear()
If distGroup = Nothing Then
Exit Sub
End If
'Change DomainName to the name of the domain the group is in
strDomain = "Mydomain.com"
objGroup = GetObject("LDAP://CN=" & distGroup & ",OU=Loaners,OU=Accounts,DC=myDomain,DC=com")
For Each objUser In objGroup.Members
assetListBox.Items.Insert(0, objUser.displayName)
assetListBox.Sorted = True
asset = assetListBox.Items.Item(0)
If distArrayElements > assetListBox.Items.Count Then
distArrayElements = Nothing
End If
Next
Dim i As Integer
For i = 0 To assetListBox.Items.Count
AddElementToStringArray("assetListBox.Items " & i)
Next
MsgBox("Number of elements in array is: " & distArray.Length & vbCrLf & vbCrLf & "Asset: " & asset)
End Sub
Public Sub AddElementToStringArray(ByVal stringToAdd As String)
ReDim Preserve distArray(distArrayElements)
distArray(distArrayElements) = stringToAdd
distArrayElements += 1
End Sub
建议减1 assetListBox.Items.Count
Dim distGroup As String
Dim asset As String
Dim distArray() As String
Dim distArrayElements As Integer = 0
Sub getMembers()
Dim objGroup, objUser, objFSO, strDomain
assetListBox.Items.Clear()
If distGroup = Nothing Then
Exit Sub
End If
'Change DomainName to the name of the domain the group is in
strDomain = "Mydomain.com"
objGroup = GetObject("LDAP://CN=" & distGroup & ",OU=Loaners,OU=Accounts,DC=myDomain,DC=com")
For Each objUser In objGroup.Members
assetListBox.Items.Insert(0, objUser.displayName)
assetListBox.Sorted = True
asset = assetListBox.Items.Item(0)
If distArrayElements > assetListBox.Items.Count Then
distArrayElements = Nothing
End If
Next
Dim i As Integer
For i = 0 To assetListBox.Items.Count - 1
AddElementToStringArray("assetListBox.Items " & i)
Next
MsgBox("Number of elements in array is: " & distArray.Length & vbCrLf & vbCrLf & "Asset: " & asset)
End Sub
Public Sub AddElementToStringArray(ByVal stringToAdd As String)
ReDim Preserve distArray(distArrayElements)
distArray(distArrayElements) = stringToAdd
distArrayElements += 1
End Sub
我正在尝试从 DL 中的 AD 获取成员并将这些成员添加到数组中,同时还将它们显示在列表框中。我的问题是数组表示数组中有 8 个元素,但列表框显示 7。因此,当从列表框中的内容从 0 开始计数时,它应该说 6,而不是 8。此外,当 objGroup.Members由于我返回的 distGroup 而发生变化,数组也保持在 8,而它应该更多。谁能帮我?我不是 VB 大师。
Dim distGroup As String
Dim asset As String
Dim distArray() As String
Dim distArrayElements As Integer = 0
Sub getMembers()
Dim objGroup, objUser, objFSO, strDomain
assetListBox.Items.Clear()
If distGroup = Nothing Then
Exit Sub
End If
'Change DomainName to the name of the domain the group is in
strDomain = "Mydomain.com"
objGroup = GetObject("LDAP://CN=" & distGroup & ",OU=Loaners,OU=Accounts,DC=myDomain,DC=com")
For Each objUser In objGroup.Members
assetListBox.Items.Insert(0, objUser.displayName)
assetListBox.Sorted = True
asset = assetListBox.Items.Item(0)
If distArrayElements > assetListBox.Items.Count Then
distArrayElements = Nothing
End If
Next
Dim i As Integer
For i = 0 To assetListBox.Items.Count
AddElementToStringArray("assetListBox.Items " & i)
Next
MsgBox("Number of elements in array is: " & distArray.Length & vbCrLf & vbCrLf & "Asset: " & asset)
End Sub
Public Sub AddElementToStringArray(ByVal stringToAdd As String)
ReDim Preserve distArray(distArrayElements)
distArray(distArrayElements) = stringToAdd
distArrayElements += 1
End Sub
建议减1 assetListBox.Items.Count
Dim distGroup As String
Dim asset As String
Dim distArray() As String
Dim distArrayElements As Integer = 0
Sub getMembers()
Dim objGroup, objUser, objFSO, strDomain
assetListBox.Items.Clear()
If distGroup = Nothing Then
Exit Sub
End If
'Change DomainName to the name of the domain the group is in
strDomain = "Mydomain.com"
objGroup = GetObject("LDAP://CN=" & distGroup & ",OU=Loaners,OU=Accounts,DC=myDomain,DC=com")
For Each objUser In objGroup.Members
assetListBox.Items.Insert(0, objUser.displayName)
assetListBox.Sorted = True
asset = assetListBox.Items.Item(0)
If distArrayElements > assetListBox.Items.Count Then
distArrayElements = Nothing
End If
Next
Dim i As Integer
For i = 0 To assetListBox.Items.Count - 1
AddElementToStringArray("assetListBox.Items " & i)
Next
MsgBox("Number of elements in array is: " & distArray.Length & vbCrLf & vbCrLf & "Asset: " & asset)
End Sub
Public Sub AddElementToStringArray(ByVal stringToAdd As String)
ReDim Preserve distArray(distArrayElements)
distArray(distArrayElements) = stringToAdd
distArrayElements += 1
End Sub