Я новичок в VBA. Я пытаюсь запустить макрос, чтобы открыть другую книгу, отфильтровать, скопировать и вставить подмножество данных из этой второй книги в первую. Затем в 1-й книге есть формула vlookup с массивом таблицы и индексом столбца во 2-й книге. Кажется, я не могу понять часть VBA. Я также думаю, что проблема с моими переменными. Кто-нибудь может помочь пожалуйста?
Sub VarMap()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim cb As Worksheet
Dim ex As Worksheet
Set ex = ThisWorkbook.Worksheets("SF SCD Bank Account")
'open 2nd workbook
SFmapping = ThisWorkbook.Sheets("Macro").Cells(10, 4)
Workbooks.Open Filename:=SFmapping
'Not sure how to set variable for this 2nd workbook.
'The name of sheet changes with the date
Set cb = ActiveSheet
'filter in 2nd workbook, copy and paste this data
'into 1st workbook and delete it from 2nd
lastrow = cb.Cells(Rows.Count, "B").End(xlUp).Row
cb.Range("A1:H" & lastrow).AutoFilter Field:=5, Criteria1:="Cash Bucket"
cb.Range("B2:G" & lastrow).SpecialCells(xlCellTypeVisible).Copy
ex.Range("B2").PasteSpecial Paste:=xlPasteValues
cb.Range("A2:H" & lastrow).SpecialCells(xlCellTypeVisible).Delete
cb.AutoFilterMode = False
cb.Range("B:B").Insert
cb.Range("B2").Select
cb.Range("B2").Formula = "=G2&H2"
cb.Range("B2").AutoFill Range("B2:B2" & lastrow)
'vlookup from 1st workbook to 2nd
lastrow2 = ex.Cells(Rows.Count, "B").End(xlUp).Row
ex.Activate
ex.Range("A2").Formula = "=VLOOKUP=(H2,cb.Range(B:C),2,FALSE)"
ex.Range("A2").AutoFill Range("A2:A2" & lastrow2)
End Sub