Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Помогите модернизировать ВПР - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Помогите модернизировать ВПР (Макросы/Sub)
Помогите модернизировать ВПР
Aero16 Дата: Четверг, 03.03.2016, 23:36 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго времени суток!

очень понадобилось по работе немного изменить ВПР, а именно искать не точное совпадение в тексте, а вообще есть ли например такое слово в тексте ячейки, но что то не работает, если указано конкретно искомое слово, как в закомментированной строке то все ок, а если искомое значение в переменной, то выдает ошибку, подскажите пожалуйста в чем проблема

[vba]
Код
Function test(x As Variant, xy As Range, y As Integer)
Application.Volatile True
On Error GoTo err1
Dim i As Integer, j As Integer
Dim r1 As Range
Set r1 = xy

For i = 1 To r1.Rows.Count
If r1.Cells(i, 1).Value Like "*x*" Then
'If r1.Cells(i, 1).Value Like "*привет*" Then
If r1.Cells(i, y).Value <> "" Then
test = r1.Cells(i, y).Value
Else
test = ""
End If
Exit Function
End If
Next i
test = "ошибка иск значения"

Exit Function
err1:
test = "ошибка"
End Function
[/vba]


Сообщение отредактировал Aero16 - Четверг, 03.03.2016, 23:43
 
Ответить
СообщениеДоброго времени суток!

очень понадобилось по работе немного изменить ВПР, а именно искать не точное совпадение в тексте, а вообще есть ли например такое слово в тексте ячейки, но что то не работает, если указано конкретно искомое слово, как в закомментированной строке то все ок, а если искомое значение в переменной, то выдает ошибку, подскажите пожалуйста в чем проблема

[vba]
Код
Function test(x As Variant, xy As Range, y As Integer)
Application.Volatile True
On Error GoTo err1
Dim i As Integer, j As Integer
Dim r1 As Range
Set r1 = xy

For i = 1 To r1.Rows.Count
If r1.Cells(i, 1).Value Like "*x*" Then
'If r1.Cells(i, 1).Value Like "*привет*" Then
If r1.Cells(i, y).Value <> "" Then
test = r1.Cells(i, y).Value
Else
test = ""
End If
Exit Function
End If
Next i
test = "ошибка иск значения"

Exit Function
err1:
test = "ошибка"
End Function
[/vba]

Автор - Aero16
Дата добавления - 03.03.2016 в 23:36
KuklP Дата: Четверг, 03.03.2016, 23:45 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[vba]
Код
If r1.Cells(i, 1).Value Like "*" & x & "*" Then
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение[vba]
Код
If r1.Cells(i, 1).Value Like "*" & x & "*" Then
[/vba]

Автор - KuklP
Дата добавления - 03.03.2016 в 23:45
Aero16 Дата: Четверг, 03.03.2016, 23:49 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Огромнейшее спасибо :) :) :)
 
Ответить
СообщениеОгромнейшее спасибо :) :) :)

Автор - Aero16
Дата добавления - 03.03.2016 в 23:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Помогите модернизировать ВПР (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!