Привет! Поделитесь, у кого есть, кодом Fn VBA для 64 битного MS Excel, которая принимает коллекцию как аргумент и возвращает все ее ключи (именно ключи, не значения).
Изменено: - 12.01.2025 05:53:54
|
12.01.2025 10:08:38
остальное сами.
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
12.01.2025 10:52:08
testuser, ну я на тот пост и указал :-)
Разве что тс не указал, что в итоге он хочет видеть, коллекцию ключей или массив ключей или массив ключ,значение...
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
12.01.2025 11:02:50
|
|||
|
|
|
|
13.01.2025 01:30:21
testuser, БМВ, спасибо огромное! То, что нужно!
Скажите, а в плане производительности это сопоставимо с Dictiory.keys()? Без учета накладных на первоначальное создание самого объетка Dictiory или коллекции, ключи которого получаем. Что скажете, подходит ли этот функционал для широкого использования, аналогично Dictiory.keys()? Например. Задумал заменить в своем проекте все Dictionary на Коллекции. Мотивация - опасное поведение Dictionary при обращении к значению, он добавляет ключ, если его не было, даже тогда, когда я предпочел бы ошибку. Проект покрыт проверками Dictionary.Exists с функционалом выброса ошибки, если ключа нет, коллекция делала бы выброс ошибки по-умолчанию, что избавляет меня от нудных танцев с Dictionary и неочевидного Debugа. Аналог .keys() для коллекций потребовался чтобы не городить дополнительный уровень вложености коллекции, хранящей Row таблицы (в отличии от Dictionary, Row в виде коллекции не может сообщить к каким столбцам она хранит значения из-за чего где-то в верхнеуровневом коде нужно выписывались названия столбцов или же хранить их в общей структуре DSetWithMeta с полями "rows", "columnNames". Т.е. образовался дополнительный уровень вложенности в сравнении с Dictionary). Пример с Row не единственный, а лишь один частный случай, но очень часто Dictionary подкупает именно тем, что имеет метод .keys(), который в отличии от метода exists() сложно реализовать для коллекции (но благодаря вам, кажется, это теперь стало возможным).
Изменено: - 13.01.2025 02:19:55
|
|
|
|
|
|
13.01.2025 02:23:51
Изменено: - 13.01.2025 02:34:55
|
|||
|
|
|
|
13.01.2025 07:09:31
Изменено: - 13.01.2025 07:09:53
|
|||
|
|
|
|
13.01.2025 07:44:48
testuser, это понятно, что выгрузку ключей лучше переиспользовать. Вопрос был другой - эффективность ColKeys, пример которой вы привели, в плане производительности. Сильно уступает методу keys(), который у Dictionary (при равном наборе ключей и значений)? Или призводительность сопоставима и переписав проект, избавив его от Dictionary, я не получу жесткой просадки производительности в части .keys() функционала? Вы не тестировали ее в плане перформанса?
Изменено: - 13.01.2025 07:51:27
|
|
|
|
|
|
13.01.2025 08:25:31
В моей не очень обильной истории макрописца только однажды коллекция окащалась быстрее, но
Коллекция более универсальна при использовании на pc и Mac Позволяет сортировать Пробигало мнение что после 100 000 словарь начинает притормаживать в отличии ит коллекции. Иными словами, лишние строки кода могут быть компенсированы скоростью, но все зависит от потребеости.
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
13.01.2025 11:57:31
|
|||||
|
|
|
|
13.01.2025 12:14:49
Добрый день, я немного выпал из форума, может что пропустил. Куда у нас пропал, самый большой любитель замера скорости и экономии миллисекунд Jack Famous?
|
|
|
|
|
|
13.01.2025 12:47:16
То это долгий старт для Dictionary и тогда понятно почему вам приходится говорить о разительной разнице. Для себя решил отказаться от такого способа создания словарей.
Изменено: - 13.01.2025 12:55:07
|
|||||
|
|
|
|
13.01.2025 15:17:43
Изменено: - 13.01.2025 15:18:31
|
|||
|
|
|
|
13.01.2025 16:01:29
Сергей Юрьевич, нет. Я имею в виду что можно провести сортировку в коллекции. Изменив порядок. Как и в массиве.
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
13.01.2025 16:08:32
Словарь тоже можно сортировать при желании
Я сам не пробовал ) |
|
|
|
|
|
13.01.2025 16:53:58
|
|
|
|
|
|
13.01.2025 16:58:02
Короче может это уже было но пусть будте. Действительно что-то там после 100000
Изменено: - 13.01.2025 16:59:15
|
|||||
|
|
|
|
14.01.2025 15:05:06
БМВ,
А если вы будете удалять и добавлять элемент заново и таким образом добиваться сортировки (типо сортировки пузырьком, но снизу), то тоже самое можно делать и в Dictionary.
Изменено: - 14.01.2025 15:13:40
|
|||||
|
|
|
|
14.01.2025 20:02:37
before Optional. An expression that specifies a relative position in the collection. The member to be added is placed in the collection before the member identified by the before argument. If a numeric expression, before must be a number from 1 to the value of the collection's Count property. If a string expression, before must correspond to the key specified when the member being referred to was added to the collection. You can specify a before position or an after position, but not both. after Optional. An expression that specifies a relative position in the collection. The member to be added is placed in the collection after the member identified by the after argument. If numeric, after must be a number from 1 to the value of the collection's Count property. If a string, after must correspond to the key specified when the member referred to was added to the collection. You can specify a before position or an after position, but not both. Есть такое у словаря?
Изменено: - 14.01.2025 20:08:37
По вопросам из тем форума, личку не читаю.
|
||||
|
|
|
|||