Привет! Я написал код в VBA, чтобы открыть определенные листы, скопировать данные рабочего листа и вставить вывод в другой лист.
У меня есть два вопроса, в настоящее время я сделал это, написав Имена Excel в каждом бите кода, это было бы хорошо для нескольких книг, но в настоящее время их более 50, и код будет смехотворно длинным. Мне было интересно, есть ли способ go через папку, содержащую файлы Excel, и go через список до завершения.
Sub Openworkbook()
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long
'first worksheet to copy and paste
Workbooks.Open "C:\"
Set wsCopy = Workbooks("Isabella.xlsx").Worksheets("Sheet2")
Set wsDest = Workbooks("Testcode1.xlsx").Worksheets("Sheet1")
lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
wsCopy.Range("A1:E86" & lCopyLastRow).Copy _
wsDest.Range("A" & lDestLastRow)
Workbooks("Isabella.xlsx").Close SaveChanges:=True
'Second worksheet to copy and paste
Workbooks.Open "C:\"
Set wsCopy = Workbooks("Jacob.xlsx").Worksheets("Sheet2")
Set wsDest = Workbooks("Testcode1.xlsx").Worksheets("Sheet1")
lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
wsCopy.Range("A1:E86" & lCopyLastRow).Copy _
wsDest.Range("A" & lDestLastRow)
Workbooks("Jacob.xlsx").Close SaveChanges:=True
End Sub
Большое спасибо за вашу помощь.
********************************* UPDATE ************** ****************************
Я переписал код ниже, если вам нужна помощь, пожалуйста, дайте мне знаю, и я сделаю все возможное, чтобы помочь вам.