Поиск в значений экселе

Программирование на Visual Basic for Applications
Arkada
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 19.04.2005 (Вт) 6:14
Откуда: Оренбург

Поиск в значений экселе

Сообщение Arkada » 19.04.2005 (Вт) 6:28

Hell всем,
Мне нужно решить такой трабл: открыть файл .xls найти на листе (ил в книге) значение, ежели таковое имеется work1 ежели не то work2 und close file.
У меня такая проблема в макросе метод cells.find не ищет на листе (в книге) значения, выдает ошибку object variable or Whit not set. Причем нулевые значения находит, подлец :-).
Мож кто знает помогите чайнику!!! :oops:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2005 (Вт) 7:49

Дык это.
Код свой приведи :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Arkada
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 19.04.2005 (Вт) 6:14
Откуда: Оренбург

Sorry, плиз !!!

Сообщение Arkada » 19.04.2005 (Вт) 10:02

Вот такой код будь, он неладен
При пошаговой отработке на этой строке error. Ежели заремить эту строку, то макрос работает.
Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
И еще хотел спросить как обработать результат поиска.
:?

Acclaim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 21.01.2005 (Пт) 8:36
Откуда: Красноярск

Сообщение Acclaim » 03.05.2005 (Вт) 12:16

тогда в продолжение темы вот впоросец: в книге есть лист, который содержит DialogSheets там есть поле ввода значения, и три поля вывода 1 поле - есть такое значение!
2 - данные из столбца В листа 2соответствующие найденному значению
3 - данные из столбца В листа 3 соответствующие найденному значению
поле ввода значение текстовое, это ФИО


каким должен быть код?

т.е нужно чтиобы при открытии файла xls автоматически открывалась эта форма dialogsheets и при вводе значения (в поле ввода) происходил поиск такового во всех листах открытой книги, при положительном результате - выводились значения соответствующие введенному (или принадлежащие ему) в поля вывода
Не важно кто прав, главное - кто ЛЕВ!

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Сообщение Димитрий » 03.05.2005 (Вт) 18:43

Arkada
Если не найдено так и будет, по этому пример из Help:

Код: Выделить всё
With Worksheets(1).Range("a1:a500")
    Set c = .Find(2, lookin:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = 5
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

Люbитель
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 02.05.2005 (Пн) 15:10

Сообщение Люbитель » 05.05.2005 (Чт) 23:06

При пошаговой отработке на этой строке error. Ежели заремить эту строку, то макрос работает.
Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
И еще хотел спросить как обработать результат поиска.

Попробуй обращаться не через Cell, а полностью (начиная от Application скажем, я так у себя когда-то делал). В результате поиска мы получаем объект класса Range. Затем можем использовать его свойства и методы (
Dim C As Range
C = Application.Workbooks("Книга1").Worksheets("Лист1").Cells.Find(...)
C.Select
Dim s as long
s = c.row
и так далее)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList