Сравнение диапазонов в разных книгах? Как указать путь?

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сравнение диапазонов в разных книгах? Как указать путь?

Сообщение sonata » 11.11.2003 (Вт) 13:19

См. ниже...
Последний раз редактировалось sonata 11.11.2003 (Вт) 13:50, всего редактировалось 1 раз.

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 11.11.2003 (Вт) 13:38

Что-то напридумывала, в принципе запускается без спотыканий,
но работает очень долго...И, что странно, не к каждой дате проставляет курс...

И еще пришлось из-за длительности делать Ctrl+Break
Код: Выделить всё
Public Sub Сравнение_номеров_с_условием()

Application.Workbooks.Open ("C:\Documents and Settings\sonata\Рабочий стол\Курсы валют.xls")
Set workSheet1 = Workbooks("Ларионовы").Worksheets("Лист1")     
Set workSheet2 = Workbooks("Курсы валют").Worksheets("Курсы валют")
Set range1 = workSheet1.Range("A:A")
Set range2 = workSheet2.Range("A2:A600")


Dim curField As Object
Dim findedField As Object

For Each curField In range1
    Set findedField = range2.Find(What:=curField.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
    If Not findedField Is Nothing Then
        curField.Offset(, 5).Value = findedField.Offset(, 2).Value
    End If
 
Next curField

End Sub

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 11.11.2003 (Вт) 13:49

1)Если такой даты не найдено, то взять самую ближайшую предыдущую дуту….Как это сделать?
2) еще сравнение пустых строк как избежать?

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

Сообщение GSerg » 12.11.2003 (Ср) 9:51

Тута одна единственная функция нужна, ВПР называется :)
Только отсортируй список курсов во возрастанию дат, и получишь всё искомое :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 12.11.2003 (Ср) 10:45

:D
Супер!!!Это то, что мне надо!!!
Но!!!Проблема в том, что данные для сравнения находятся
в разных книгах...И Еще есть ли аналог этой ф-и в VBA?
Мне нужно жесткое задание диапазона, в котором искать данные...


Вернуться в VBA

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

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

    TopList