Страницы: 1
RSS
Совпадения из разных файлов
 
Здравствуйте! Помогите, пожалуйста, как можно перенести количество(Q-ty) из Тetrad2 в Тetrad1, учитывая совпадения городов? Заранее спасибо! =)
 
ВПР не подходит?
 
ВПР() копирует, а не переносит. Написано перенести!
Или как всегда нужно копировать?
 
Игорь, скорее всего нелады с терминологией))
 
Перенести)
 
Желательно не формулой)
 
Цитата
melinda789 написал: Перенести)
Т.е. в Тetrad2 данных не должно остаться. Так?
 
Глазам не верю :)
Точно перенести? Тогда формулой сделать вообще невозможно, тогда только макрос.
Но я не верю...

P.S. Посмотрел файл - ну классически ведь нужно ВПР(), зачем там удаление?
Изменено: Hugo - 19.03.2015 13:52:07
 
Цитата
Hugo написал: Глазам не верю
Спокойствие, главное - спокойствие (с) Сейчас выясним)
 
Да, всё верно! Перенести, чтоб данных не осталось! =)
 
Конечно, которые совпадут)
 
Цитата
Hugo написал: Глазам не верю
Игорь, теперь ты, как порядочный мужчина, просто обязан помочь))
 
Вот до чего доводят постоянные "перенести" куданепопадя...
Код могу написать, но сейчас некогда - обед на носу.
Пока обедаю интересно узнать - работаете не под Маком? А то напомнили сегодня, что там нет словаря...
Я бы писал на словаре - букв меньше.
 
Не под Маком.
Как скажете, буду ждать=)
Приятного!
 
Код в первую тетрадь:
Код
Option Explicit

Sub tt()
    Dim a(), b(), i&, wb As Object, t$
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary"): dic.comparemode = 1
    With ThisWorkbook.Sheets(1).[a1].CurrentRegion.Columns(1)
        a = .Value: b = .Offset(, 2).Value
    End With
    For i = 2 To UBound(a): dic.Item(a(i, 1)) = i: Next

    Application.ScreenUpdating = False

    Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & "Tetrad2.xlsx")
    With wb.Sheets(1).[a1].CurrentRegion.Columns(1)
        For i = 2 To .Rows.Count
            t = .Cells(i)
            If dic.exists(t) Then b(dic.Item(t), 1) = .Cells(i).Offset(, 2): .Cells(i).Offset(, 2) = Empty
        Next
    End With

    ThisWorkbook.Sheets(1).[a1].CurrentRegion.Columns(1).Offset(, 2).Value = b
    ThisWorkbook.save

    wb.Close True

    Application.ScreenUpdating = True

End Sub
Изменено: Hugo - 19.03.2015 16:39:24
 
Спасибо большое!!! :D
Страницы: 1
Наверх