Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как через макросы сравнить ячейку с диапазоном
 
Добрый вечер. Возможно уже решалось, но не нашел.
Необходимо сравнить ячейку с диапазоном, и если значение есть в диапазоне то перейти к следующей ячейке. Если нет то добавить к диапазону следующей строкой.
Спасибо.
 
muramru, ваш пример файла упростить вам и нам жизнь
 
muramru, если сравнили ячейку с диапазоном, то откуда возьмется следующая ячейка? :-)  
 
А следующую ячейку можно взять из следующего листа. Или из следующего файла :)
 
Привет, muramru! Во вложении
 
Один из вариантов проверить, содержится ли в указанном диапазоне значение определенной ячейки (без цикла и без метода Find):
Код
Sub test()
    Dim x As Range, q
    Set x = [A1:B10] ' диапазон проверки
    q = [E1].Value 'проверяемое значение
    MsgBox Evaluate("OR(" & x.Address(, , Application.ReferenceStyle) & "=" & q & ")")
End Sub
Чем шире угол зрения, тем он тупее.
 
Всем спасибо за ответы. Но так пока и не решил свой вопрос
 
Цитата
Inexsu
С Вашим файлом переделывал переделывал, но так и не получается до конца, работает, но не в ту ячейку начинает добавлять.
Изменено: muramur - 12 Ноя 2018 12:02:24
 
Цитата

А с Вашим вариантом только числа у меня работают.
Изменено: muramur - 12 Ноя 2018 12:02:12
 
Привет!
Цитата
muramru написал:
не в ту ячейку
Так напишите в какую Вы хотите. Вы же писали:
Цитата
muramru написал:
добавить к диапазону следующей строкой
 
muramru, вернитесь в свои сообщения и удалите то, что Вы ошибочно считаете цитатами.
 
Inexsu,
Я не очень разбираюсь в макросах, начал недавно. В Вашем почти разобрался что есть что, но так и не понял почему у меня не работает правильно.
Сравнивает то что надо, а вот добавляет к концу таблицы, а мне необходимо в тело таблицы в определенный столбец с которым и сравнивалось.
Код
Public Function Диап_Увеличить(ByRef rng As Range, ByVal str As String) _
      As Variant    ' Тестом НЕ покрыта
' rng будет увеличиваться
Dim Cell_Last As Range, Cell_Next As Range
   Set Cell_Last = rng.End(xlDown) ' что то не так в этой строчке
   Set Cell_Next = Cell_Last.Offset(1, 0)

   Cell_Next.Value = str
   Set Dest = rng.CurrentRegion
End Function
 
Цитата
muramur написал:
мне необходимо
Вы файл приложили? И не надо. Не будем опошлять ветку. Ваша задаче не решена, а я себе универсальную функцию сделал :-)
 
Страницы: 1
Читают тему (гостей: 1)
Наверх