Элемент не соответствует требованию включается в массив - PullRequest
0 голосов
/ 09 июля 2019

Я создал массив для динамического поиска содержимого в столбце I на рабочем листе «Инвентарь оружия» и поместил соответствующую информацию в столбце B в массив. Затем я отображаю эти данные в массиве в созданном списке.

Как вы можете видеть из моего кода, мое условие - это текст в столбце I "В инструменте". Однако последний элемент в массиве не имеет «In Tool» в элементе, хотя все еще включен в массив. Я понятия не имею, почему это происходит, и я буду признателен, если вы сможете помочь.

enter image description here

enter image description here

Не знаю, почему здесь будет показываться 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» в элементе, хотя все еще включен в массив. Я понятия не имею, почему это происходит, и я буду признателен, если вы сможете помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...