Microsoft Excel'de VBA kullanarak bir klasördeki her çalışma kitabından bir sütun veya sütun kopyalama

Anonim
  • Makro, C:\Data klasöründeki her dosyanın ilk çalışma sayfasının bir bölümünü çalışma kitabınızın ilk çalışma sayfasına kopyalayacaktır.
  • İlk makro normal bir kopyalama yapar ve ikinci makro değerleri kopyalar.

Excel'in yalnızca 256 sütunu olduğunu unutmayın

Sub CopyColumn () Basebook As Workbook Dim mybook As Workbook Dim Dim sourceRange As Range Dim distrange As Range Dim cnum As Integer Dim i As Long Dim a As Integer Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\ Veri" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 O zaman Set basebook = ThisWorkbook cnum = 1 i = 1 To .FoundFiles.Count 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 Sonraki 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 As Integer Application.ScreenUpdating = Application.FileSearch ile Yanlış .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 O zaman Set basebook = ThisWorkbook cnum = 1 i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open(.FoundFiles(i)) SourceRange Set = mybook.Worksheets( 1).Columns("A:B") a = sourceRange.Columns.Count ile sourceRange Set destrange = basebook.Worksheets(1).Columns(cnum). _ Resize(, .Columns.Count) End With destrange.Value = sourceRange.Value mybook.Close cnum = i * a + 1 Sonraki i End If End If With Application.ScreenUpdating = True End Sub