我在 Excel 2010 的工作簿中有 2 张工作表。第一张有一行名称,如下所示:Jens A. Christian Peter Jens A. Anders Jens A. 等。
在第二张纸上,我想制作一个组合框,它显示第一张纸上的所有名称,但没有重复。可以用 VBA 代码实现吗?
另外我想让列表动态,但我想我只需要调用函数:
Private Sub Workbook_Open()
实现这一目标?
提前感谢
请检查以下宏。它在 2 列上运行,但您可以对其进行调整。
Option Explicit
Sub UniqueRecords()
Dim i As Long
Dim j As Long
Dim k As Long
Dim bDuplicate As Boolean
i = 1
Do Until Cells(i, 1).Value = ""
'check if record exist
j = 1
Do Until Cells(j, 2).Value = ""
bDuplicate = False
If Cells(i, 1).Value = Cells(j, 2).Value Then
bDuplicate = True
Exit Do
End If
j = j + 1
Loop
'add record if no duplicate
If bDuplicate = False Then
For k = 1 To ActiveSheet.Rows.Count
If Cells(k, 2).Value = "" Then
Cells(k, 2).Value = Cells(i, 1).Value
Exit For
End If
Next k
End If
i = i + 1
Loop
End Sub