powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ВПР через VBA (не FUNCTION!)
5 сообщений из 5, страница 1 из 1
ВПР через VBA (не FUNCTION!)
    #38975790
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.

Сорри, не нашел в существующих топиках.

Задача в том, чтобы подставить данные одного листа на другой по значениям ключевого поля. На простом примере (вложил в топик) - на Листе 1 есть диапазон значений A1:A5 и к ним есть соответствующие значения в диапазоне B1:B5. Нужно на Лист 2 подставить в диапазон B1:B5 значения, соответствующие значениям диапазона A1:A5 (соответствие см. на Листе 1).

Понятно, что решается через ВПР, но применяться будет в постоянно изменяемых книгах, не хотелось бы использовать там формулы.

Заранее спасибо!
...
Рейтинг: 0 / 0
ВПР через VBA (не FUNCTION!)
    #38975810
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muzikizum,

возможно так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub ee150604_0806()
Dim i, n, s1
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Excel.Worksheets("лист1")  ''справочник
Set ws2 = Excel.Worksheets("лист2")  ''основной

For i = 1 To 5
s1 = ws2.Cells(i, 1)

For n = 1 To 5
If ws1.Cells(n, 1) = s1 Then

ws2.Cells(i, 2) = ws1.Cells(n, 2)

Exit For
End If
Next n
Next i


End Sub
...
Рейтинг: 0 / 0
ВПР через VBA (не FUNCTION!)
    #38975822
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
muzikizum, можно вставить формулы и заменить на значения. Без циклов, с любым количеством данных в столбцах.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub bb()
With Sheets("Лист2")
  With .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).Offset(, 1)
    .Formula = "=VLOOKUP(A1,Лист1!A:B,2,)"
    .Value = .Value
  End With
End With
End Sub
...
Рейтинг: 0 / 0
ВПР через VBA (не FUNCTION!)
    #38975829
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
.value = APPLICATION.VLOOKUP(range("A1"),sheets("Лист1").range("A:B"),2,)
...
Рейтинг: 0 / 0
ВПР через VBA (не FUNCTION!)
    #38976078
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо! :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ВПР через VBA (не FUNCTION!)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]