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

Anonim
  • Η μακροεντολή θα αντιγράψει ένα μέρος του πρώτου φύλλου εργασίας κάθε αρχείου που βρίσκεται στο φάκελο C: \ Data στο πρώτο φύλλο εργασίας του βιβλίου εργασίας σας.
  • Η πρώτη μακροεντολή κάνει κανονική αντιγραφή και η δεύτερη μακροεντολή αντιγράφει τις τιμές.

Θυμηθείτε ότι το Excel έχει μόνο 256 στήλες

Sub CopyColumn () Dim basebook As Workbook Dim mybook As Workbook Dim sourceRange As Range Dim devrange As Range Dim cnum As Integer Dim i Long Dim a As Integer Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Δεδομένα ".SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Ececute ()> 0 Στη συνέχεια ορίστε basebook = ThisWorkbook cnum = 1 For i = 1 To .Files.Count Set mybook = Workbooks.Open (.Files (i)) Set sourceRange = mybook.Worksheets (1) .Columns ("A: B") a = sourceRange.Columns.Count Set destrange = basebook.Worksheets (1) .Cells (1, cnum) sourceRange.Copy desrange mybook.Close cnum = i * a + 1 Επόμενο Αν τελειώσω με εφαρμογή.ScreenUpdating = True End Sub Sub CopyColumnValues ​​() Dim basebook As Workbook Dim mybook As Workbook Dim sourceRange As Range Dim devrange As Range Dim cnum As Integer Dim i Long Dim a As Integer Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks Εάν .Execute ()> 0 Στη συνέχεια ορίστε το basebook = ThisWorkbook cnum = 1 For i = 1 To .Files.Count Set mybook = Workbooks.Open (.Files (i)) Set sourceRange = mybook.Worksets ( 1) .Στήλες ("A: B") a = sourceRange.Columns.Count With sourceRange Ορίστε destrange = basebook.Works (1) .Στήλες (cnum) _ Αλλαγή μεγέθους (, .Columns.Count) Τέλος με destrange.Value = sourceRange.Value mybook.Close cnum = i * a + 1 Next i End If End with Application.ScreenUpdating = True End Sub