我在Excel 2010的工作簿中有2张。第一张有一行名字,如下所示: Jens A. 基督教 彼得 Jens A. 安德斯 Jens A.等。
在第二张纸上,我想制作一个组合框,它显示第一张纸上的所有名称,但没有重复。这可以用VBA代码制作吗?
另外我想让列表动态化,但我想我只需要调用函数:
Private Sub Workbook_Open()
要实现这一目标吗?
提前完成
答案 0 :(得分:0)
请检查以下宏。它可以在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