我创建了一个数组来动态搜索工作表“枪支库存”中第I列中的内容,并将B列中的相应信息放入该数组中。然后,我在创建的列表上的数组中显示这些数据。
从我的代码中可以看到,我的条件是列I中的文本是“ In Tool”。但是,数组中的最后一个元素虽然仍包含在数组中,但在元素中没有“工具内”。我不知道为什么会这样,如果您能提供帮助,我将不胜感激。
我不知道为什么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”。但是,数组中的最后一个元素虽然仍包含在数组中,但在元素中没有“工具内”。我不知道为什么会这样,如果您能提供帮助,我将不胜感激。