У меня есть код, который копирует значения и дает мне значения, но не тот, который мне нужен. Я чувствую, что я рядом, но чего-то не хватает. Код копирует весь рабочий лист рабочей книги, и мне нужны значения, соответствующие критериям.
У меня есть эта основная рабочая книга , и я хочу взять информацию из разных рабочих книг, которые имеюттот же формат, например этот , и я хочу в основной рабочей книге вставить значения в некотором диапазоне на основе критериев в первых трех столбцах ("SSL"; "Baureihe ";" Produktionsjahr ")
это код, который я сделал до сих пор
Sub Transfer ()
Dim SSl As String
Dim Baureihe As String
Dim Produktionsjahr As String
Dim fileName As String
Dim Tfile As Workbook
Dim shData As Worksheet, shOutput As Worksheet
Dim rg As Range, ra As Range
Dim i As Long, row As Long, j As Long
Set shData = ThisWorkbook.Worksheets("Transponieren")
filename = Application.getOpenFilename("Excel file (*.xlsm),*.xlsm", , "Select File")
If filename = Empty then
Exit Sub
End If
Set Tfile = Application.Workbooks.Open(filename)
Set shOutput = Tfile.Worksheets("Transponieren")
Set rg = shData.Range("A1").CurrentRegion
Set ra = shOutput.range("A1").CurrentRegion
row = 2
For i = 2 To rg.Rows.Count
SSL = Sheets("Transponieren").Cells(i, 1).Value
Baureihe = Sheets("Transponieren").Cells (i , 2).Value
Produktionsjahr = Sheets("Transponieren") .Cells(i, 3).Value
For j = 2 To ra.Rows.Count
If ra.Cells(j, 1).Value = SSL And _
ra.Cells(j, 2).Value = Baureihe And _
ra.Cells(j, 3).Value = Produktionsjahr Then
Tfile.Sheets("Transponieren").Range("A" & i & ":E" & i).Copy _
Destination:=ThisWorkbook.Sheets("Transponieren").Range("K" & j & ":O" & j)
row = row + 1
Application.CutCopyMode = False
End if
Next j
Next i
End Sub
Я новичок в vba Excel, я пробовал разные способы, но я могу 'Кажется, я не понимаю, почему этот Кодекс не копирует только те значения, которые мне нужны. Заранее спасибо