Как присвоить значение словарного ключа непосредственно другой переменной?

У меня есть Scripting.Dictionary, из которого я хочу присвоить значение первого ключа (т. е. 0-го элемента в массиве .Keys) другой переменной.

Я не смог сделать это, не присвоив сначала значение массива Keys другой переменной, а затем не получив доступ к элементу из этой другой переменной.

Как я могу сделать это за один шаг?

Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

dict.Add Key: = "a", Item: = "A"
dict.Add Key: = "b", Item: = "B"
dict.Add Key: = "c", Item: = "C"
dict.Add Key: = "d", Item: = "D"

Dim tmp1
Dim tmp2 As String
tmp1 = dict.Keys
tmp2 = tmp1(0) 'This works


Dim tmp As String
tmp = dict.Keys(0) 'This does not work

Эта строка будет работать, если вы используете раннюю привязку (создав ссылку на Microsoft Scripting Runtime и используя Set dict = New Scripting.Dictionary). В противном случае вы можете использовать tmp = dict.Keys()(0). Обратите внимание, что в цикле это будет слишком медленно. Также вы можете создать цикл: Dim Key As Variant: For Each Key In dict.Keys: tmp = Key: Exit For: Next Key.

VBasic2008 28.08.2024 07:12
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

в свойстве VBA "Scripting.Dictionary.keys" перенастройте массив, но вы не можете напрямую получить доступ к элементу этого массива с помощью "dict.Keys(0)", потому что ключи возвращают вариант, содержащий массив, и вам нужно явно ссылаться на него. этот массив

Dim tmp AS String

tmp = dict.Keys()(0)

Другие вопросы по теме