Microsoft Excel'de VBA kullanarak bir klasördeki her çalışma kitabından bir satır veya satır kopyalayın

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.
Sub CopyRow() Temel kitabını Çalışma Kitabı Olarak Karartın Mybook'u Çalışma Kitabı Olarak Karartın SourceRange As Range Dim destrange As Range Dim i As Long Dim i As Long Dim a As Long Application.ScreenUpdating = Application.FileSearch ile Yanlış .NewSearch .LookIn = "C:\ Veri" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Sonra Set basebook = ThisWorkbook rnum = 1 i = 1 To .FoundFiles.Count Mybook = Workbooks.Open(.FoundFiles(i)) Set sourceRange = mybook.Worksheets(1).Rows("3:5") a = sourceRange.Rows.Count Set destrange = basebook.Worksheets(1).Cells(rnum, 1) sourceRange.Copy destrange mybook.Close rnum = i * a + 1 Sonraki i End If End With Application.ScreenUpdating = True End Sub Sub CopyRowValues() Dim basebook As Workbook Dim mybook As Workbook Dim sourceRange As Range Dim destrange As Range Dim rum As Long Dim i As Long Dim a Application.ScreenUpdating = Application.FileSearch ile Yanlış .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFi leTypeExcelWorkbooks Eğer .Execute() > 0 ise o zaman set basebook = ThisWorkbook rnum = 1 i = 1 için .FoundFiles.Count Mybook = Workbooks.Open(.FoundFiles(i)) Set sourceRange = mybook.Worksheets(1).Rows( ayarlayın "3:5") a = sourceRange.Rows.Count ile sourceRange Set destrange = basebook.Worksheets(1).Cells(rnum, 1). _ Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value mybook.Close rnum = i * a + 1 Sonraki i End If End With Application.ScreenUpdating = True End Sub