Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите плз. создать маленький макрос по выборке строк  (Прочитано 9984 раз)
0 Пользователей и 1 Гость смотрят эту тему.
step-top7
Гость
« : 02-06-2009 17:35 » 

Итак, есть два документа А и Б (правда можно создать доп. лист в одной книге), в одном и во втором документе есть столбцы с тел. номерами (строки в первом документе не совпадают с строками во втором), нужно найти ячейку А1 в документе А которая соответствует ячейке в документе Б А4, и сопировать в документ Б с документа А ячейки B1, C1, D1, E1.
 Возможно ли такое сотворить, если да то как?
Записан
step-top7
Гость
« Ответ #1 : 02-06-2009 17:43 » 

ах да, мелкое дополнение, из ячеек B1, C1, D1, E1 документа А, в ячейки B4, C4, D4, E4 документа В
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 02-06-2009 17:44 » 

step-top7, есть такой простой способ: включаешь запись макроса, выполняешь все нужные действия руками, останавливаешь запись и изучаешь полученный код макроса.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
step-top7
Гость
« Ответ #3 : 02-06-2009 17:51 » 

спасибо большое, если честно я ламер в VBA, так что извини если тупые вопросы.
сделал как ты говорил выдало такое
    Sheets("Лист1").Select
    Range("G3").Select
    Selection.Copy
    Sheets("Лист2").Select
    Range("K1265").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист1").Select
    Range("H3").Select
    ActiveSheet.Paste
а поиска номера на листе 2 нету подскажи как сделать плз.
Записан
step-top7
Гость
« Ответ #4 : 02-06-2009 18:01 » 

да и мне нужно сравнивать ячейки одного столбца, с ячейками другого, а здесь просто выделил, скопировал, вставил такое неподойдет Жаль
Записан
step-top7
Гость
« Ответ #5 : 02-06-2009 18:15 » 

Пример
Документ А         Документ Б   
Телефон   Баланс      Телефон   Баланс
1шт.-676561944   -518,15      4014494   
1шт.-673114555   -316,22      5049913   
1шт.-674014549   -263,37      5048142   
1шт.-673236460   -171,36      5048123   
1шт.-676561998   -136,14      6561998   
1шт.-675049406   -36,3      3114555   
1шт.-675049824   -35,7      3236460   
1шт.-675047021   -26,93      5048135   
1шт.-674014494   -22,31      6561944   
1шт.-675048109   -21,25      4014549   
1шт.-675048135   -21,25      5049824   
1шт.-675048123   -21,25      5047021   
1шт.-675048142   -18,86      5048109   
1шт.-675049913   -18,69      5049406   

нужно перенести баланс с одного документа в другой, и номеров оч. много
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #6 : 03-06-2009 09:02 » 

поиском занимается ВПР
или метод Find объекта Range
Записан

I Have Nine Lives You Have One Only
THINK!
step-top7
Гость
« Ответ #7 : 03-06-2009 11:09 » 

А можно как-нибудь поподробнее, или скрипт, или пример формулы
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #8 : 03-06-2009 18:12 » 

примерно так, но .... F1 Вам в руки

Код:
Public Sub test()
    Dim i As Integer
    Dim sNumber As String
    Dim rFind As Range
    Dim a As Variant, b As Variant, c As Variant, d As Variant
   
    For i = 2 To 100
        'что ищем
        sNumber = Trim(ThisWorkbook.Worksheets(1).Cells(i, 1))
        'определяем диаплзон поиска
        With Workbooks("Книга1").Worksheets(1).Range("c1:c500")
            'ищем
            Set rFind = .Find(What:=sNumber, LookIn:=xlValues, MatchCase:=False)
            'проверяем что нашли
            If Not rFind Is Nothing Then
                'берем значения из строки
                a = rFind.Offset(, -2).Value
                b = rFind.Offset(, -1).Value
                c = rFind.Value
                d = rFind.Offset(, 1).Value
               
                'вставляем результат поиска
                ThisWorkbook.Worksheets(1).Cells(i, 2) = a
                ThisWorkbook.Worksheets(1).Cells(i, 3) = b
                ThisWorkbook.Worksheets(1).Cells(i, 4) = c
                ThisWorkbook.Worksheets(1).Cells(i, 5) = d
            End If
        End With
    Next i
End Sub
Записан

I Have Nine Lives You Have One Only
THINK!
step-top7
Гость
« Ответ #9 : 03-06-2009 21:12 » 

Спасибо большое!!!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines