Я создал массив для динамического поиска содержимого в столбце I на рабочем листе «Инвентарь оружия» и поместил соответствующую информацию в столбце B в массив. Затем я отображаю эти данные в массиве в созданном списке.
Как вы можете видеть из моего кода, мое условие - это текст в столбце I "В инструменте". Однако последний элемент в массиве не имеет «In Tool» в элементе, хотя все еще включен в массив. Я понятия не имею, почему это происходит, и я буду признателен, если вы сможете помочь.
![enter image description here](https://i.stack.imgur.com/BMFXd.png)
![enter image description here](https://i.stack.imgur.com/0MS59.png)
Не знаю, почему здесь будет показываться S0007.
Пожалуйста, игнорируйте неопределенные переменные. Я определил их как публичные переменные. Программа работает хорошо, я просто не знаю, почему последний элемент будет включен в массив.
Private Sub CheckGun_Click()
Dim gunarr()
Dim col As Integer
'Sheets.Add after:=Worksheets(5)
'ActiveSheet.Name = "tmp"
m = 0
With ThisWorkbook.Worksheets("gun inventory")
g = Application.WorksheetFunction.CountIf(.Range("I:I"), "In Tool")
Debug.Print g
ReDim gunarr(1 To g)
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).row
If .Cells(i, "I").Text = "In Tool" Then
m = m + 1
End If
gunarr(m) = .Cells(i, "B")
Next i
End With
row = UBound(gunarr) - LBound(gunarr)
'Worksheets("tmp").Range("A2").Resize(row + 1).Value = Application.Transpose(gunarr)
With ListBox1
.Font.Size = 10
.ForeColor = vbBlue
.ControlTipText = "Tools are in use"
.ColumnHeads = True
.ColumnCount = Range("a1").CurrentRegion.Columns.Count
.ColumnWidths = "80"
.ListStyle = fmListStyleOption
.MultiSelect = fmMultiSelectMulti
.List = gunarr()
End With
'On Error Resume Next
'Application.DisplayAlerts = False 'prevent alert popping up for deleting the sheet
'ThisWorkbook.Sheets("tmp").Delete
'Application.DisplayAlerts = True
End Sub
Как вы можете видеть из моего кода, мое условие - это текст в столбце I "В инструменте". Однако последний элемент в массиве не имеет «In Tool» в элементе, хотя все еще включен в массив. Я понятия не имею, почему это происходит, и я буду признателен, если вы сможете помочь.