Kopiér en eller flere kolonner fra hver projektmappe i en mappe ved hjælp af VBA i Microsoft Excel

Indholdsfortegnelse
  • Makroen kopierer en del af det første regneark i hver fil, der er i mappen C: \ Data, til det første regneark i din projektmappe.
  • Den første makro kopierer en normal kopi og den anden makro kopierer værdierne.

Husk, at Excel kun 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 = Falsk .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Indstil derefter basebook = ThisWorkbook cnum = 1 For i = 1 Til .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Indstil 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 Næste 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 = Falsk med Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = Falsk .FileType = msoFileTypeExcelWorkbooks Hvis .Execute ()> 0 Indstil derefter basebook = ThisWorkbook cnum = 1 For i = 1 Til .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Angiv sourceRange = mybook.Worksheets ( 1) .Kolonner ("A: B") a = sourceRange.Columns.Count Med sourceRange Indstil 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

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave