Страницы: 1
RSS
Как средствами VBA определить, входит ли некое значение в множество других?
 
В сущности, весь вопрос в названии темы. Имеем диапазон значений myRange (a,s,d,f,g) и какое-то значение (g или e). Нужно средствами  VBA узнать, есть ли это значение в диапазоне. Для g будет "истина"; для е - "ложь".  
На всякий случай файл.
 
Например, так:  
 
Sub test()  
   результат = Not [myRange].Find([b1]) Is Nothing
   MsgBox результат  
End Sub  
 
 
PS: Vj;yj записать ещё короче...
 
Ну или так:  
 
Sub test2()  
   результат = WorksheetFunction.CountIf([myRange], [b2]) > 0
   MsgBox результат  
End Sub  
 
При желании можно придумать ещё десяток способов
 
Спасибо. А как еще короче? В принципе, я беру проверяемое значение не из ячеек, а получаю в результате расчета в VBA, и потом получить  
 
Sub test()  
результат = результат + Not [myRange].Find(переменная) Is Nothing
End Sub  
 
Так будет работать?
 
Отвечаю сам - проверил, работают оба варианта. Но почему-то в первом случае дает "-1"
 
True = -1  
False = 0  
 
Если бы Вы сначала написали   DIM результат AS BOOLEAN  
 
то MSGBOX вывел бы TRUE вместо -1  
(или надо установить формат ячеек "логический")  
 
По сути, разницы никакой нет.
Страницы: 1
Читают тему
Наверх