GSerg писал(а):application.worksheetfunction.vlookup
GSerg писал(а):На будущее.
Найди в папке с Офисом файл funcs.xls. Открой. И вопросы твои исчезнут.
uhm писал(а):Да, i - типа Range. Только учти, здесь описан самый-самый общий принцип работы - ты пробегаешь циклом по столбцу, ищешь значение, которое совпадает с образцом, если найдешь - можешь делать что угодно. Такая вещь позволяет делать больше вещей, чем vlookup, но, может быть, работает медленнее (не проверял, впрочем).
uhm писал(а):With Workbooks(номер).Worksheets(номер)..
uhm писал(а):Да, i - типа Range. Только учти, здесь описан самый-самый общий принцип работы - ты пробегаешь циклом по столбцу, ищешь значение, которое совпадает с образцом, если найдешь - можешь делать что угодно. Такая вещь позволяет делать больше вещей, чем vlookup, но, может быть, работает медленнее (не проверял, впрочем).
Так я и сделал, но только вместо Range сделал:uhm писал(а):Dim i As Range
For Each i In Range("A1:B2")
...
Next i
uhm писал(а):С книгами и листами проще работать по имени, а не по номеру. Номер - это просто порядковый номер данной конкретной книги или листа, он не будет постоянным от запуска к запуску.
uhm писал(а):Кстати, GSerg, так не честно - спрашивали-то про аналог функции ВПР, а ты дал саму функцию...
batiq писал(а):Так я и сделал, но только вместо Range сделал:uhm писал(а):Dim i As Range
For Each i In Range("A1:B2")
...
Next i
Workbooks("SiteBase.xls").Worksheets(SheetsName).Range("A:A"). Так нельзя?.
Или может следует указать путь к книге?.uhm писал(а):С книгами и листами проще работать по имени, а не по номеру. Номер - это просто порядковый номер данной конкретной книги или листа, он не будет постоянным от запуска к запуску.
А откуда берется этот номер его както объявляют?.
uhm писал(а):А! О! Забыл... Книга-то у тебя эта (SiteBase.xls) открыта?
не получается..uhm писал(а):Не-е, дело именно в том, что книга закрыта.
Проще всего будет сделать в начале макроса Workbooks.Open, а в конце, если та книга не нужна, ее закрыть с помощью Workbook("SiteBase").Close
For Each icell In Workbooks("sitebase.xls").Worksheets(BSCName).Range("A:A")
If icell.Value = Range("B" + CStr(i)).Cells Then Range("C" + CStr(i)).Cells = Workbooks("sitebase.xls").Worksheets(BSCName).Range("B" + CStr(icell.Row)).Cells
Next icell
uhm писал(а):Жаль Написал бы хоть, что и как не получается...
Workbooks.Open Filename:=ThisWorkbook.Path + "\SiteBase.xls"
GSerg писал(а):А не проще записать в ячейку саму функцию ВПР?
with worksheets.add
.cells(1,5).formula = "= vlookup(A1, B1:C100, 2, FALSE())"
end with
with worksheets.add
.cells(1,5).formulalocal = "= ВПР(A1; B1:C100; 2; ЛОЖЬ())"
end with
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70