Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2012, 12:58   #21
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Леша, стандартно - на высоте! удачно дополнено.
Но идея slan - это отрыв башки. Вот же уловил ассоциацию.
а то крапаешь тут for ... next - рутина, за себя неудобно.

(как бы в спамеры не попасть, извините, но эмоции меня захлестнули)

поблагодарим еще Bape}l{kу, вопрос изначально требовал творческого подхода для получения универсального решения.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.01.2012, 14:03   #22
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

еще такой вариант
Код:
Function io(j As String, i As Integer) As Boolean
Dim x, z
For Each x In Split(j, ",")
    z = Split(x, "-"): If i = z(0) Then io = True: Exit Function
    If UBound(z) = 1 Then If i >= z(0) And i <= z(1) Then io = True: Exit Function
Next
End Function

Sub ji()
MsgBox io("1-9, 97, 99", 101)
MsgBox io("1-9, 97, 99", 7)
End Sub
Цитата:
скажите кто-нибудь что это не круто!!! вот это подход!
как нестандартно и как красиво и органично привлечен Excel к решению!
Не согласен. На стандартно - да, но не круто. А если алгоритм придется перенести в другую объектную среду или перевести на другой язык? К тому же Intersect - штука тормознутая.

p.s.: Свой вариант аксиомой не считаю.
Тишина – самый громкий звук

Последний раз редактировалось nerv; 12.01.2012 в 14:23.
nerv вне форума Ответить с цитированием
Старый 12.01.2012, 14:09   #23
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
тогда уж так
Код:
Function is_in1(s$, n&) As Boolean
is_in1 = Not Intersect(Range("A" & Replace$(Replace$(Replace$(s, " ", ""), ",", ",A"), "-", ":A")), Range("A" & n)) Is Nothing
End Function
Круто!
Ни за что не додумался бы до такого решения.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция Split 0creator0 Microsoft Office Excel 32 17.09.2011 16:36
Аналог Split в Delphi? apromix Помощь студентам 6 21.09.2010 22:17
Split Text ZuBy Общие вопросы Delphi 6 27.06.2010 01:47
Split(); Alex_sim Общие вопросы .NET 2 08.05.2010 20:03