Αντιγράψτε μια σειρά ή γραμμές από κάθε βιβλίο εργασίας σε ένα φάκελο χρησιμοποιώντας VBA στο Microsoft Excel

Anonim
  • Η μακροεντολή θα αντιγράψει ένα μέρος του πρώτου φύλλου εργασίας κάθε αρχείου που βρίσκεται στο φάκελο C: \ Data στο πρώτο φύλλο εργασίας του βιβλίου εργασίας σας.
  • Η πρώτη μακροεντολή κάνει κανονική αντιγραφή και η δεύτερη μακροεντολή αντιγράφει τις τιμές.
Sub CopyRow () Dim basebook As Workbook Dim mybook As Workbook Dim sourceRange As Range Dim decrange As As Range Dim rnum As Long Dim i Long Dim a As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Δεδομένα ".SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Ececute ()> 0 Στη συνέχεια ορίστε basebook = ThisWorkbook rnum = 1 Για i = 1 To .Files.Count Set mybook = Workbooks.Open (.Files (i)) Ορισμός πηγήςRange = mybook.Worksheets (1) .Rows ("3: 5") a = sourceRange.Rows.Count Set destrange = basebook.Worksheets (1) .Cells (rnum, 1) sourceRange.Copy devrange mybook.Close rnum = i * a + 1 Επόμενο Τέλος Αν τελειώσω με εφαρμογή.ScreenUpdating = True End Sub Sub CopyRowValues ​​() Dim basebook As Workbook Dim mybook As Workbook Dim sourceRange As Range Dim decrange As Range Dim rnum As Long Dim i Long Dim as Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = False .FileType = msoFi leTypeExcelWorkbooks Αν .Εκτέλεση ()> 0 Στη συνέχεια ορίστε το βασικό βιβλίο = ThisWorkbook rnum = 1 Για i = 1 Προς τα αρχεία.Count Set mybook = Workbooks.Open (.Files (i)) Set sourceRange = mybook.Worksheets (1) .Rows ( "3: 5") a = sourceRange.Rows.Count With sourceRange Set destrange = basebook.Works (1) .Cells (rnum, 1). _ Αλλαγή μεγέθους (.Rows.Count, .Columns.Count) Τέλος με destrange.Value = sourceRange.Value mybook.Close rnum = i * a + 1 Next i End If End with Application.ScreenUpdating = True End Sub