Учитывая какой-то набор значений (массив или коллекция какого-то рода), как я могу сгенерировать набор различных значений?Как я могу получить уникальный набор значений?
-1
A
ответ
1
Используйте Scripting.Dictionary
(Инструменты ->Список использованной литературы ... ->Microsoft Scripting среды выполнения):
Function Unique(values As Variant) As Variant()
'Put all the values as keys into a dictionary
Dim dict As New Dictionary
Dim val As Variant
For Each val In values
dict(val) = 1
Next
Unique = dict.Keys 'This cannot be done with a Collection, which doesn't expose its keys
End Function
В VBScript, или VBA, если вы предпочитаете использовать позднее связывание (переменные без явные типы):
Function Unique(values)
Dim dict, val
Set dict = CreateObject("Scripting.Dictionary")
For Each val In values
...
Если работает VBA на Mac (который не имеет Microsoft Scripting Runtime), есть drop-in replacement for Dictionary.
Некоторые примеры:
- Extracting the collection of unique values from a filter in VBA
- Delete duplicate entries in a given row
- How to remove duplicate items in listbox
- How to get unique values from a list of values using VBscript?
- VBScript:Remove duplicates from an array
- Word occurrences in VBA
- Find all distinct values in user based selection - Excel VBA
Другой вариант (только VBA) является использование Collection. Это немного неудобно, потому что нет никакого способа установить существующий ключ без ошибки броска, и потому, что возвращаемый массив должен быть создан вручную:
Function Unique(values As Variant) As Variant()
Dim col As New Collection, val As Variant, i As Integer
For Each val In values
TryAdd col, val, val
Next
Dim ret() As Variant
Redim ret(col.Count - 1)
For i = 0 To col.Count-1
ret(i) = col(i+1)
Next
Unique = ret
End Function
Sub TryAdd(col As Collection, item As Variant, key As String)
On Error Resume Next
col.Add(item, key)
End Sub
Смежные вопросы
- 1. Как получить уникальный набор значений для заданного поля массива
- 2. Как я могу получить набор значений из формы?
- 3. Как я могу получить набор значений из значения на карте?
- 4. Как я могу получить набор значений полей в groovy?
- 5. Как я могу получить уникальный идентификатор потока?
- 6. Как я могу сохранить уникальный список значений в Android?
- 7. Уникальный набор неориентированных ребер
- 8. Как я могу создать уникальный уникальный номер устройства в Rhomobile
- 9. Как я могу сопоставить один набор значений другому?
- 10. Как я могу дискретировать набор значений в WEKA?
- 11. Ruby: уникальный набор цифр
- 12. Как получить набор значений как перечисление?
- 13. Как я могу получить уникальный ID для 2-го массива?
- 14. Как я могу получить уникальный длинный от Gemfire?
- 15. Как я могу получить надежный уникальный идентификатор на вкладке браузера?
- 16. Как я могу получить уникальный идентификатор и MAX (дата)?
- 17. Как я могу получить уникальный идентификатор искры в Java?
- 18. Как я могу получить уникальный идентификатор каждого посетителя? php
- 19. Как я могу получить уникальный код ключа для символьного ключа
- 20. Как я могу получить уникальный идентификатор главного компьютера в PHP?
- 21. Реляционное разделение: найдите каждый уникальный набор «дочерних» значений в столбце
- 22. Как получить уникальный набор пар узлов для неориентированных отношений
- 23. Как я могу классифицировать набор результатов MySQLi?
- 24. Как получить набор значений из HashMap
- 25. Получить уникальный список значений из динамического списка
- 26. Получить уникальный запрос значений с последними записями
- 27. Как найти уникальный набор ближайших пар точек?
- 28. Уникальный набор символов в массиве
- 29. Какую переменную я могу использовать, чтобы установить свой набор значений?
- 30. Как я могу заказать набор завершенных jQuery?
возможно дубликат [Извлечение коллекцию уникальных значений из фильтр в VBA] (http://stackoverflow.com/questions/31891059/extracting-the-collection-of-unique-values-from-a-filter-in-vba) – Jeeped
@Jeeped Предназначен для отображения общего без смешивания в Excel- или другом коде, специфичном для хоста. –
Да, я точно понимаю, чего вы пытаетесь достичь. Просто так много Scripting. Словарь литературы уже доступен. Я задаюсь вопросом, нужна ли нам не-Community-Wiki ответ на свой вопрос. Возможно, вам следует зарегистрироваться для новых [Warlords of Documentation] (http://meta.stackoverflow.com/questions/306213/warlords-of-documentation-your-questions-answered?cb=1) усилий. У меня есть. – Jeeped