0

Excel 2010のワークブックに2枚のシートがあります。最初のシートには、次のような名前の行があります。Jens A. Christian Peter Jens A. AndersJensAなど。

2番目のシートで、最初のシートのすべての名前を表示するコンボボックスを作成しますが、重複はありません。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 に答える