Kopier en eller flere kolonner fra hver arbeidsbok i en mappe ved hjelp av VBA i Microsoft Excel

Anonim
  • Makroen kopierer en del av det første regnearket i hver fil i mappen C: \ Data til det første regnearket i arbeidsboken.
  • Den første makroen gjør en normal kopi og den andre makro kopierer verdiene.

Husk at Excel bare har 256 kolonner

Sub CopyColumn () Dim basebook As Workbook 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.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Data ".SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Sett deretter basebook = ThisWorkbook cnum = 1 For i = 1 Til .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Sett sourceRange = 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 Neste i End If End with Application.ScreenUpdating = True End Sub Sub CopyColumnValues ​​() Dim basebook As Workbook 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.ScreenUpdating = Feil med Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Sett deretter basebook = ThisWorkbook cnum = 1 For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Angi sourceRange = mybook.Worksheets ( 1) .Columns ("A: B") a = sourceRange.Columns.Count With sourceRange Set destrange = basebook.Worksheets (1) .Columns (cnum). _ Endre størrelse (, .Columns.Count) Slutt med destrange.Value = sourceRange.Value mybook.Close cnum = i * a + 1 Neste i Slutt hvis slutt med Application.ScreenUpdating = True End Sub