Zkopírujte sloupec nebo sloupce z každého sešitu ve složce pomocí jazyka VBA v aplikaci Microsoft Excel

Anonim
  • Makro zkopíruje část prvního listu každého souboru, který je ve složce C: \ Data, do prvního listu vašeho sešitu.
  • První makro provede normální kopírování a druhé makro zkopíruje hodnoty.

Pamatujte, že Excel má pouze 256 sloupců

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 Then set basebook = ThisWorkbook cnum = 1 For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Set 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 Další i Konec Pokud Konec s 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 = False With Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Then Set basebook = ThisWorkbook cnum = 1 For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Set sourceRange = mybook.Worksheets ( 1) .Sloupce ("A: B") a = sourceRange.Columns.Count With sourceRange Set destrange = basebook.Worksheets (1) .Columns (cnum). _ Změnit velikost (, .Columns.Count) Konec destrange.Value = sourceRange.Value mybook.Close cnum = i * a + 1 Další i Končit If End s Application.ScreenUpdating = True End Sub