Страницы: 1
RSS
Проверка наличия символов в ячейке
 
Друзья, мне необходимо проверить есть ли в нужном мне диапазоне необходимые мне символы...  
если в разным столбцах, но одной строке присутствуют оба символа последовательно. то пользователь видит сообщение "проверка прошла успешно",  
Ежили один из символов отсутствует,то выскакивает сообщение "операция не закончена".  
Как правильно написать?  
 
Sub ПроверкаПроцесса()  
Dim i As Integer  
Dim j As Integer  
Dim x, y As Double  
x = Cells(2, 2)  
y = Cells(3, 2)  
For i = x To y  
   For j = 6 To 15  
   If Cells(i, j) = "t" Then  
   Cells(i, j) = "uО"  
   Cells(i, j).Select  
   MsgBox ("проверка прошла успешно")  
   Else: Cells(i, j).Select: MsgBox ("Операция не закончена")  
     
   End If  
   Next j  
Next i  
         
End Sub
 
Здрасьте!  
Уточняющий вопрос:  
но одной строке присутствуют оба символа последовательно.  
Что сие означает?  
В одной и той же ячейке некие символы должны стоять подряд?  
Или в соседних ячейках строки данные символы должны присуствовать?  
Или в строке в принципе должны присуствовать данные символы (необязательно в соседних ячейках)?  
А порядок важен? (сначала один символ, потом другой) или все равно?  
А другие символы в ячейках вместе с нужными могут находиться?  
 
Видите сколько вопросов сразу?  
Поэтому - читаем правила и выкладываем пример. :О)
 
Отвечаю!  
Если в строке есть символ "t", то и должен быть в этой строке символ "uО".т.е. сначала присутствие символа "t", а потом только "uO".  
Не важно рядом они или нет.  
Если условие их наличие выполняется,то проверяется следующая строка.  
Если нет одного из символов, то программа выдает сообщение об ошибке.  
А если все проверяемые строки удовлетворяют условию, тогда программа говорит "проверка прошла успешно"
 
Клубов, Вас же просят показать пример. Строки со всеми вариантами, и с желаемым результатом.
 
Ну вот файл.  
Только в нем вместо букв "t" и "uO" символы...
 
так?
 
Как понял:  
Public Sub www()  
   Dim i&, a, s$  
   For i = 7 To [c7].End(xlDown).Row
       a = Range(Cells(i, 6), Cells(i, 13))  
       s = Join(Application.Index(a, 0, 0), "")  
       If s <> "tuО" Then  
           MsgBox ("Операция не закончена")  
           Exit Sub  
       End If  
   Next  
   MsgBox ("проверка прошла успешно")  
End Sub
Я сам - дурнее всякого примера! ...
 
Забыл: Exit Sub надо убрать.
Я сам - дурнее всякого примера! ...
 
Еще раз:  
Public Sub www()  
   Dim i&, a, s$, n&  
   For i = 7 To [c7].End(xlDown).Row
       a = Range(Cells(i, 6), Cells(i, 13))  
       s = Join(Application.Index(a, 0, 0), "")  
       If s <> "tuО" Then  
           MsgBox ("Операция не закончена  " & i)  
           n = n + 1  
       End If  
   Next  
   If n = 0 Then MsgBox ("проверка прошла успешно")  
End Sub
Я сам - дурнее всякого примера! ...
 
/
 
Я организовал данную процедуру вот таким образом:  
 
Sub ProverkaProcessa()  
Dim i As Integer  
Dim j As Integer  
Dim q As Integer  
Dim x, y, N As Double  
 
For i = Imin To Imax  
   For j = Jmin To Jmax  
   a = 0  
   If Cells(i, j) = "t" Then  
       For q = j To Jmax  
       If Cells(i, q) = "uÎ" Then a = 1: Exit For  
        Next q  
   If a = 1 Then Exit For Else Cells(i, j).Select: MsgBox ("Операция не закончена"): Error = 1004: Exit Sub  
       End If  
   Next j  
Next i  
MsgBox ("Проверка прошла успешно")  
     
End Sub  
 
Спасибо за Ваши варианты
Страницы: 1
Читают тему
Наверх