Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Помогите с поиском в Excel Добавлено: 26.11.08 12:48  

Автор вопроса:  Эдуард
Пример
На листе 1 есть ячейка со словом "явлоко"
На листе 2 листе есть много разных слов в разный ячейках
Вопрос
Какой текст макроса нужен для того чтобы провести поиск слова "яблоко" на листе 2. И чтоб он выводил значение "нашел" или "не нашел"

Я просто не специалист в Visual basic? так тыкаюсь на уровне пользователя Excel и макросов, а тут измучался не могу сделать.

Заранее благодарен за пример.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 26.11.08 14:20
  1. Sub Marine()
  2.     If TypeName(Лист2.Cells.Find(Лист1.Cells(1,1).Value)) = "Nothing" Then
  3.         MsgBox "где мои яблоки?!"
  4.     Else
  5.         MsgBox "та вот же оно, твое яблоко!"
  6.     End If
  7. End Sub

Ответить

Номер ответа: 2
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #2 Добавлено: 26.11.08 14:41
А еще так.

Sub Search()
  sSearchText = Sheets(1).Cells(1, 1).Value
  Set Obj = Sheets(2).Cells.find(What:=sSearchText)
  If Obj Is Nothing Then MsgBox "Нет яблок:(" Else MsgBox "Яблоки!!!"
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 26.11.08 18:00
Михаил, я именно так и хотел написать, просто забыл про оператор Is, тут же не переменные, а объекты. Так смотрится красивей.

Ответить

Номер ответа: 4
Автор ответа:
 Эдуард



Вопросов: 1
Ответов: 2
 Профиль | | #4 Добавлено: 27.11.08 09:35
Большое спасибо!!!!!!!!!!!!

Ответить

Номер ответа: 5
Автор ответа:
 Эдуард



Вопросов: 1
Ответов: 2
 Профиль | | #5 Добавлено: 27.11.08 09:51
А еще один вопрос.

Что нужно написать чтобы активировалась найденная ячейка при положительном поиске??????

Ответить

Номер ответа: 6
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #6 Добавлено: 27.11.08 13:19
Sub Search()

SearchText = Sheets(1).Cells(1, 1).Value

Set Obj = Sheets(2).Cells.Find(SearchText)

If Obj Is Nothing Then
    
    MsgBox "Не нашел: " & SearchText & "."

Else

    Sheets(2).Activate
    Obj.Activate
    MsgBox "Нашел " & SearchText & "."
    
End If

End Sub

Ответить

Номер ответа: 7
Автор ответа:
 Student



Вопросов: 2
Ответов: 8
 Профиль | | #7 Добавлено: 28.11.08 00:56
А что надо добавить в мой код, что бы при поиске в список добавлялись все найденные значения, а не только первое и единственное?
  1. Private Sub CommandButton1_Click()
  2. last_num = Sheets("INDEX").TextBox1.Value
  3. MsgBox last_num
  4. Dim rng As Range
  5. Sheets("INDEX").ListBox1.Clear
  6.         Set rng = Sheets("BAZA").Range("A1:A65000").Find(What:=last_num, LookIn:=xlValues)
  7.         If Not (rng Is Nothing) Then
  8.         i = Mid(rng.Address, 4)
  9.         num_cart = Sheets("BAZA").Cells(i, 1).Value
  10.         fio_cart = Sheets("BAZA").Cells(i, 2).Value
  11.         If fio_cart <> "" Then Sheets("INDEX").ListBox1.AddItem num_cart & " " & fio_cart
  12.         Else
  13.         MsgBox "Значение не найдено!"
  14.             End If
  15.         
  16. End Sub

Ответить

Номер ответа: 8
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #8 Добавлено: 28.11.08 03:13
Добавь цикл.
  1. Set MyRange = Sheets("BAZA").Range("A1:A65000")
  2. For Each Cell In MyRange
  3.  
  4. '... в цикле выполняешь свой код
  5.  
  6. Next
  7. Set MyRange = Nothing

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам