Я пытался пройти через это, но пока не достиг успеха.Код работает, но, к сожалению, непреднамеренно.
Рабочая книга MACRO является основной рабочей книгой со всеми полями данных на листе «Данные».Книга LEAN содержит определенные точки данных, которые я хотел бы скопировать и вставить в именованные диапазоны на листе «Данные» в книге MACRO до последней доступной строки.
Например:
Рабочая книга макроса содержит столбцы:
Eng # Eng Name Date Started Date Completed KPI1 KPI2
100 ABC 12/01/2018 12/10/2018 50 100
Рабочая книга Lean содержит столбцы:
Eng # Date Started Date Completed KPI# Score
101 12/02/2018 12/03/2018 1 50
101 12/02/2018 12/03/2018 2 10
102 11/01/2018 11/20/2018 1 100
102 11/01/2018 11/20/2018 4 100
Цель состоит из двух частей:
- Извлечение данных из определенных столбцов книги Lean и вставка в лист «Макросы» книги Macro до последней доступной строки
- Извлечение KPI # из книги Lean (которая находится встрок) и после счет к именованным диапазонам / столбцам, которые соответствуют KPI # в листе «Данные».
Моя попытка с кодом ниже:
Public Sub GrabLeanFileData()
Dim wbmacro As Workbook
Dim wblean As Workbook
Set wbmacro = Workbooks.Item("MacroFile.xlsm")
Set wblean = Workbooks.Item("Subcontractor CA - KPI's Lean.csv")
Dim wsmacro As Worksheet
Dim wslean As Worksheet
Set wsmacro = wbmacro.Worksheets.Item("Data")
Set wslean = wblean.Worksheets.Item("Subcontractor CA - KPI's Lean")
Dim leanrange As Range
Set leanrange = wslean.Range("A2:A15000")
wblean.Activate
Dim cell As Range
i = 1
For Each cell In leanrange
If leanrange.Range("A2") <> "E1002" Then
Range("A2").Offset(i, 0).Value = wsmacro.Range("Enum").Value
Range("B2").Offset(i, 0).Value = wsmacro.Range("ds").Value
Range("C2").Offset(i, 0).Value = wsmacro.Range("dc").Value
Range("D2").Offset(i, 0).Value = wsmacro.Range("kpi1").Value
i = i + 1
End If
Next cell
End Sub
Я хотел пропустить тест Eng # из 1002, поэтому я ввел это условие.