Страницы: 1
RSS
Поиск строки по названию
 
Доброго времени суток! подскажите код макроса который бы выполнял поиск в таблице по названию (например название продукта) и копировал бы эту строку в другую таблицу. Мне нужен пример кода, остальное доделаю сам. За ранее спасибо!
 
В этой теме пост #2.
 
Так и не получилось разобраться в том примере. у меня есть строка Cells.Find(What:="текст", After:=ActiveCell, LookIn:=xlValues).Activate как сделать чтобы строка в которой выделена одна клетка была скопирована?
 
Цитата
PaulI написал: Мне нужен пример кода, остальное доделаю сам
Вот, пожалуйста
Код
Sub Пример_кода()
With Worksheets("Лист1")
Set fCell = .Cells.Find(What:="текст", After:=ActiveCell, LookIn:=xlValues)
    If fCell Is Nothing Then
        MsgBox "Значение 'текст' не найдено!"
        Exit Sub
    End If
    .Rows(fCell.Row).Copy Destination:=.Range("A10")
End With
    Application.CutCopyMode = False
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Замените activate на EntireRow.Copy
 
Спасибо, все работает)
 
Еще вопрос для гуру которые не спят:

Cells.Find(What:="Текст", After:=ActiveCell, LookIn:=xlValues).EntireRow.Copy      фрагмент ищет строку на одном листе
Sheets("Лист2").Select                                                                                       переходим на лист2
Dim NextRow As long                                                                                         ищем пустую ячейку во 2 столбце для вставки скопированной строки
NextRow = Range("B65536").End(xlUp).Row +1
Cells (NextRow, 2).Select                                                                                   выделяем найденную пустую ячейку куда будем копировать
                                                                                                                        А вот КАК Вставить сюда уже скопированную строку?)))
                                                                                                                       
 
PaulI, код следует оформлять тегом. Исправляйте.
 
Код
Cells.Find(What:="Текст", After:=ActiveCell, 'фрагмент ищет строку на 
LookIn:=xlValues).EntireRow.Copy             'одном листе        
Sheets("Лист2").Select                        'переходим на лист2  
Dim NextRow As long                           'ищем пустую ячейку во 2 столбце для вставки скопированной строки 
NextRow = Range("B65536".End(xlUp).Row +1
Cells(NextRow, 2).Select                       ' выделяем найденную пустую ячейку куда будем копировать
                                             
'А вот КАК Вставит сюда уже скопированную строку?)))                                       
 
Изменено: PaulI - 15.03.2015 23:16:54
 
Ваc параметр ...Destination:=... из моего кода (пост #4) ни на какую мысль не наталкивает? Или в справке по методу .Copy прочитать попробуйте
Согласие есть продукт при полном непротивлении сторон
 
Если честно - нет. Нет опыта в программировании. Все что я здесь наваял -
с помощью записи макросов и поиска по всем форумам. А в справке в VBA
по copy ни чего не нашел
Изменено: PaulI - 16.03.2015 12:38:19
 
Из справки (странно что Вы не нашли...)
Цитата
Parameters
NameRequired/OptionalData TypeDescription
DestinationOptionalVariantSpecifies the new range to which the specified range will
be copied. If this argument is omitted, Microsoft Excel copies the range to the
Clipboard.

Как-то так (не проверял - писал прямо в форуме)
Код
Dim NextRow As Long
With Sheets("Лист2")
    NextRow = .Range("B65536").End(xlUp).Row + 1
    Cells.Find(What:="Текст", LookIn:=xlValues).EntireRow.Copy Destination:=.Cells(NextRow, 2)
End With
Изменено: Sanja - 16.03.2015 11:26:03
Согласие есть продукт при полном непротивлении сторон
 
выдает ошибку Run-time error 1004: данные не могут быть скопированы
из-за несоответствия формы и размеров области копирования и области
вставки... наверное Range надо заменить? только на что догнать не могу.
Справку посмотрел, но она мне тоже ни чего хорошего не сказала))).
Изменено: PaulI - 16.03.2015 12:38:37
 
PaulI, ещё раз (последний!) - кнопка "Цитировать" не для ответа! Не умеете цитировать - не используйте её. Отвечайте без цитат. Вернитесь в свои сообщения и исправьте их.
 
Юрий М, ну так что, можете что-то посоветовать по поводу ошибки?
 
EntireRow.Copy в ячейку второго столбца? Да Вы в своём уме? :)
 
Hugo, скажи лучше что не так, и как сделать чтоб все работало
Изменено: PaulI - 16.03.2015 14:30:56
 
Копируйте строку в первую ячейку строки, а не во вторую! Т.е. Destination:=.Cells(NextRow, 1)
 
Hugo и всем кто помог большое спасибо)))
Страницы: 1
Наверх