【发布时间】:2021-07-14 06:33:07
【问题描述】:
'我的代码在这里 Userform1 为 listbox1 初始化
Private Sub UserForm_Initialize()
Dim sh As Worksheet, arr As Variant, arrFin As Variant, countD As Long
Dim LastRow As Long, i As Long, j As Long, k As Long, boolDupl As Boolean
Set sh = Worksheets("Sheet1")
LastRow = sh.range("A" & Rows.Count).End(xlUp).Row
ReDim arrFin(1 To 2, 1 To LastRow)
arr = sh.range("A2:B" & LastRow).value
k = 1
For i = 1 To UBound(arr, 1)
boolDupl = False
For j = 1 To k 'iterate between the arrFin elements in order to check for duplicates
If arr(i, 1) & arr(i, 2) = arrFin(1, j) & arrFin(2, j) Then
boolDupl = True: Exit For
End If
Next j
If Not boolDupl Then
arrFin(1, k) = arr(i, 1): arrFin(2, k) = arr(i, 2)
k = k + 1
End If
Next
ReDim Preserve arrFin(1 To 2, 1 To k - 1)
With Me.ListBox1
.clear
.ColumnCount = False
.ColumnCount = 2
.List = WorksheetFunction.Transpose(arrFin)
.ColumnWidths = "50;500"
.TopIndex = 0
End With
End Sub
首先,我希望 listbox1 按 sheet1 列 (A) 然后列 (C) 显示唯一列表,对于代码:1101,所有值都为零 (0),它不会被 listbox1 列出。所以 Listbox1 只显示唯一列表代码:1102 和 1103。
请按照我的附件图片了解详情。请帮帮我
【问题讨论】: