Соберите все имена в столбце и поместите их в массив в Excel - PullRequest
1 голос
/ 21 июля 2011

У меня есть лист Excel с таблицей данных.Один столбец таблицы содержит названия компаний.Например, "Apple", "Microsoft", "Asus".Столбец может содержать повторяющиеся названия компаний.

Как заполнить массив в VBA, который содержит отдельных членов этого столбца?

1 Ответ

4 голосов
/ 21 июля 2011

Вы можете использовать vba collection, который не допускает дублирования для одного и того же ключа:

Option Explicit

Sub UniqueList()
  Dim i As Long
  Dim rList As Range
  Dim cUnique As New Collection
  Dim aFinal() As String

  'change the range depending on the size of your title (or use a named range)
  Set rList = Range("A1:M1")

  'Loop over every column and add the value to the collection (with unique key)
  For i = 1 To rList.Columns.Count
      On Error Resume Next
      cUnique.Add rList(1, i), CStr(rList(1, i))
  Next i

  'Store back the value from the collection to an array
  ReDim aFinal(1 To cUnique.Count, 1 To 1)
  For i = 1 To cUnique.Count
      aFinal(i, 1) = cUnique(i)
  Next i

  'Use aFinal to do whatever you want
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...