Копирайте колона или колони от всяка работна книга в папка, използвайки VBA в Microsoft Excel

Anonim
  • Макросът ще копира част от първия работен лист на всеки файл, който е в папката C: \ Data в първия работен лист на вашата работна книга.
  • Първият макрос прави нормално копиране, а вторият макрос копира стойностите.

Не забравяйте, че Excel има само 256 колони

Sub CopyColumn () Dim basebook Като работна книга Dim mybook As Workbook Dim source Range As Range Dim destrange As Range Dim cnum As Integer Dim i As Long Dim a As Integer Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Данни ".SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Тогава задайте basebook = ThisWorkbook cnum = 1 For i = 1 To.S.Files.Count Set mybook = Работни книги. mybook.Worksheets (1) .Columns ("A: B") a = sourceRange.Columns.Count Set destrange = basebook.Worksheets (1) .Cells (1, cnum) sourceRange.Copy destrange mybook.Close cnum = i * a + 1 Следващ край, ако завършва с Application.ScreenUpdating = True End Sub Sub CopyColumnValues ​​() Dim basebook като работна книга Dim mybook As Workbook Dim sourceRange As Range Dim destrange As Range Dim cnum As Integer Dim i As Long Dim a As Integer Application. = Невярно с Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Тогава задайте basebook = ThisWorkbook cnum = 1 For i = 1 To.S.Files.Count Set mybook = Workbooks.Open (FoundFiles (i)) Set sourceRange = mybook.Worksheets ( 1) .Columns ("A: B") a = sourceRange.Columns.Count With sourceRange Set destrange = basebook.Worksheets (1) .Columns (cnum). _ Resize (, .Columns.Count) End With destrange.Value = sourceRange.Value mybook.Close cnum = i * a + 1 Next i End If End With Application.ScreenUpdating = True End Sub