Copiați un rând sau rânduri din fiecare registru de lucru într-un folder folosind VBA în Microsoft Excel

Cuprins
  • Macrocomanda va copia o parte din prima foaie de lucru a fiecărui fișier care se află în folderul C: \ Date în prima foaie de lucru a registrului de lucru.
  • Prima macro face o copie normală și a doua macro copiază valorile.
Sub CopyRow () Reduceți baza de carte Ca registru de lucru Reduceți cartea mea ca registru de lucru Reduceți sursa Range As Range Dim distrange As Range Dim rnum As Long Dim i As Long Dim a As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Date ".SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Apoi Set basebook = ThisWorkbook rnum = 1 For i = 1 To FoundFiles.Count Set mybook = Workbooks.Open (FoundFiles (i)) Set sourceRange = mybook.Worksheets (1) .Rows ("3: 5") a = sourceRange.Rows.Count Set destrange = basebook.Worksheets (1) .Cells (rnum, 1) sourceRange.Copy destrange mybook.Close rnum = i * a + 1 Următorul i Se încheie dacă se încheie cu Application.ScreenUpdating = True End Sub Sub CopyRowValues ​​() Reduceți cartea de bază Ca registru de lucru Reduceți cartea mea ca registru de lucru Sursă variabilă Gama ca intervalul Distrange Ca intervalul Dim rnum Ca lungă Dim i Ca lungă Dim o aplicație cât mai lungă. = Fals cu Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = Fals .FileType = msoFi leTypeExcelWorkbooks If .Execute ()> 0 Then Set basebook = ThisWorkbook rnum = 1 For i = 1 To FoundFiles.Count Set mybook = Workbooks.Open (FoundFiles (i)) Set sourceRange = mybook.Worksheets (1) .Rows ( "3: 5") a = sourceRange.Rows.Count With sourceRange Set destrange = basebook.Worksheets (1) .Cells (rnum, 1). _ Redimensionare (.Rows.Count, .Columns.Count) Termină cu destrange.Value = sourceRange.Value mybook.Close rnum = i * a + 1 Next i End If End With Application.ScreenUpdating = True End Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave