Страницы: 1
RSS
Автозаполнение ячеек по нескольким критериям из другой книги (скорее всего VBA)
 
Добрый вечер!

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

Таблица в книге 1 (заполненная):
Имя Цель1 Цель2 Цель3 ОбщаяЦель
1
2
3

Таблица в книге 2 (заполнено всё, кроме целей):
Имя Цель1 Описание1 Цель2 Описани2 Цель3 Описание 3 Стоимость ОбщаяЦель

Нужно во вторую книгу вставить значения целей из первой. Примерно представляю, как это должно выглядеть, но не могу написать код, т.к. не умею. Хочется, чтобы задавались два аргумента:
x=название книги
y=название листа
Чтобы было легко редактировать код.
Примеры таблиц приложила. Заранее спасибо!
Изменено: astranet - 09.12.2019 00:27:24
 
astranet, здравствуйте!
Выбор файла - через диалоговое окно
Выбор листа - константа в макросе
Вывод нового массива - на новый лист (чтобы не повредить исходные данные)
Чтобы вставлять в исходные данные удалите строку кода №27 Worksheets.Add
Запускать из второй книги
Изменено: Jack Famous - 09.12.2019 10:19:43
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
astranet,
Макрос в стандартный модуль Книга1, обе книги должны быть открыты
Код
Sub PernosTarget()
Dim j As Long
Dim iLastRow As Long
Dim iLastCol As Integer
Dim Sh_Kniga2 As Worksheet
Dim FoundTag As Range
Application.ScreenUpdating = False
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column
  Set Sh_Kniga2 = Workbooks("Книга2.xls").Worksheets("Лист1")
  With Sh_Kniga2
   For j = 2 To iLastCol
    Set FoundTag = .Rows(1).Find(Cells(1, j), , xlValues, xlWhole)
     Range(Cells(2, j), Cells(iLastRow, j)).Copy
     .Cells(2, FoundTag.Column).PasteSpecial xlValues
   Next
     .Activate
     .Range("A1").Select
  End With
Application.ScreenUpdating = True
End Sub
Страницы: 1
Наверх