|
(VBA EXCEL) Коллекция с ключом
|
|||
---|---|---|---|
#18+
Как проверить есть-ли в коллекции элемент с определённым ключом? Пишу: Код: plaintext 1. 2. 3. 4.
"Invalid procedure call or argument!" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 15:17 |
|
(VBA EXCEL) Коллекция с ключом
|
|||
---|---|---|---|
#18+
Дмитрий-(сколько-же-нас?), Во-первых, CStr() не гарантия, что Item() воспримет параметр не как числовой (IsNumeric(CStr("1"))=True); но это к слову. Также к слову, заведите маленькую такую функцию CKey(), возвращающую (не преобразующийся к числовому) ключ, и используйте её вместо CStr(). Во-вторых, стандартная практика проверки наличия элемента в коллекции - обработка ошибки. В-третьих, вместо VBA.Collection можно воспользоваться Scripting.Dictionary, в нём (этом классе) есть метод Exists(). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 15:58 |
|
(VBA EXCEL) Коллекция с ключом
|
|||
---|---|---|---|
#18+
Спасибо, за помощь! Буду пробовать... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 16:49 |
|
(VBA EXCEL) Коллекция с ключом
|
|||
---|---|---|---|
#18+
может поможет 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2012, 15:39 |
|
|
start [/forum/topic.php?fid=61&msg=36690413&tid=2175361]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 434ms |
0 / 0 |