数组中包含不满足要求的元素

时间:2019-07-09 14:20:23

标签: excel vba

我创建了一个数组来动态搜索工作表“枪支库存”中第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”。但是,数组中的最后一个元素虽然仍包含在数组中,但在元素中没有“工具内”。我不知道为什么会这样,如果您能提供帮助,我将不胜感激。

0 个答案:

没有答案