powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / (VBA EXCEL) Коллекция с ключом
4 сообщений из 4, страница 1 из 1
(VBA EXCEL) Коллекция с ключом
    #36690267
Как проверить есть-ли в коллекции элемент с определённым ключом?
Пишу:
Код: plaintext
1.
2.
3.
4.
If IsEmpty(by_ISA.Item(CStr(Group_value))) Then
 MsgBox "Already defined!"
Else
 by_ISA.Add Check_values(i).Value, CStr(Group_value)
End If
Ругается на условие:
"Invalid procedure call or argument!"
...
Рейтинг: 0 / 0
(VBA EXCEL) Коллекция с ключом
    #36690413
Дмитрий-(сколько-же-нас?),

Во-первых, CStr() не гарантия, что Item() воспримет параметр не как числовой (IsNumeric(CStr("1"))=True); но это к слову. Также к слову, заведите маленькую такую функцию CKey(), возвращающую (не преобразующийся к числовому) ключ, и используйте её вместо CStr().
Во-вторых, стандартная практика проверки наличия элемента в коллекции - обработка ошибки.
В-третьих, вместо VBA.Collection можно воспользоваться Scripting.Dictionary, в нём (этом классе) есть метод Exists().
...
Рейтинг: 0 / 0
(VBA EXCEL) Коллекция с ключом
    #36690592
Спасибо, за помощь!
Буду пробовать...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
(VBA EXCEL) Коллекция с ключом
    #37974713
avtor_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может поможет
dim rstcoll as new Collection
On Error Resume Next
If rstcoll.Count = 0 Then

rstcoll.Add item:=item:=element, Key:=klych

Else
x = rstcoll(klych) ' если елемента в колекции нет строка вернет ошибку и дальше код ошибки запишеться в переменную z
z = 0
z = Err.Number
On Error GoTo 0
If z > 0 Then

rstcoll.Add item:=item:=element, Key:=klych

Else

End If
End If
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / (VBA EXCEL) Коллекция с ключом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]