Цитата |
---|
Дмитрий Щербаков написал: Сократим? |
Код |
---|
Sub ReDimБезDim() ReDim a(1 To 20), b(10 To 20, -10 To 3), c(20, -10 To 3, -5 To -3) End Sub |
И это сработает независимо от Option Explicit
12.05.2018 18:21:04
И это сработает независимо от Option Explicit |
|||||
|
|
12.05.2018 18:36:59
А что касается самой темы, то в первом сообщении ошибки такие:
вместо: FormSearch.ListBoxItems.List.Value = [_gents] должно быть: FormSearch.ListBoxItems.List = [_gents].Value То же самое - и для строки с [_ladies] и Cancel=True нужно бы добавить
Изменено: |
|
|
|
12.05.2018 22:21:41
|
|
|
|
14.05.2018 11:09:53
Господа, не могу не согласиться с вами, что лучше задать массив с запасом, а потом пресервить в самом конце — так и правильнее и быстрее
Дмитрий Щербаков, спасибо вам за объяснение про InStr - заменю Like на него, а то пришлось даже дополнительную функцию писать, чтобы заменять служебные символы, как часть текста в проверяемых строках, что, разумеется, ещё более замедляет работу. ZVI, совершенно верно - тупанул я насчёт положения .Value да и про Cancel=True забыл однако, наполнять ListBox напрямую, в данном случае не так удобно (как мне кажется), как передавать диапазон в паблик-переменную массива, т.к. данная переменная потом также используется по событию изменению текстбокса Огромное всем спасибо за примеры, варианты и наставления!
Изменено:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|
|
|
14.05.2018 13:23:53
Alemox, спасибо. Думаю, что как и всегда - зависит от случая. В том примере поиска подстроки в массиве действительно не очень удобно использовать Like хотя бы из-за возможного наличия служебных символов (а это даже скобки) в проверяемых массивах и элементах.
А вот в качестве наполнения формы я, пожалуй, оставлю именно Like, т.к. тут как раз нужны звёздочки для неточного поиска
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|
|
|
14.05.2018 15:29:26
Jack Famous, Я тестировал Like и Instr...
Все зависит от длины строки. при длинной строке разницы почти нет, но при до 128 Instr быстрее (не буду говорить во сколько раз не помню). Я тоже использую Like именно из-за синтаксиса... Есть у Instr преимущество по частному указанию CompareMode, в то время, как Like требует Option Compare Text... Но если Instr дать переменные в виде String, тот только ветер в ушах и при данных условиях я, кажись не тестировал этот вопрос. При принятии решений следует учитывать тип переменных участвующих при применении тех или иных функций. Но не стоит забывать, что если мы работаем с листом, то массив всегда Variant, а строка Variant/String, а числа всегда Variant/Double, и т. д. |
|
|
|
14.05.2018 15:40:12
AAF, благодарю за пояснения
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|
|
|
14.05.2018 15:53:47
Jack Famous, Можно бы было затестировать данный вопрос здесь,
Может создать для этого тему?
Изменено: |
|
|
|
14.05.2018 16:03:54
AAF, обязательно сделаю, когда доберусь))
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|
|
|
14.05.2018 18:54:38
AAF, Дмитрий Щербаков, спасибо за наглядный пример) Значит зря я к ReDim Preserve массивы заранее создавал)
Как говорится: "Век живи, век учись... и дураком помрешь." |
|
|
|
14.05.2018 19:32:47
Владимир
|
|||||
|
|
||||