0

我在 Excel 2010 的工作簿中有 2 张工作表。第一张有一行名称,如下所示:Jens A. Christian Peter Jens A. Anders Jens A. 等。

在第二张纸上,我想制作一个组合框,它显示第一张纸上的所有名称,但没有重复。可以用 VBA 代码实现吗?

另外我想让列表动态,但我想我只需要调用函数:

Private Sub Workbook_Open()

实现这一目标?

提前感谢

4

1 回答 1

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
于 2012-05-15T19:49:40.983 回答