Microsoft Excel'de VBA kullanarak verileri içeren satırdan son satıra kadar tek bir sayfaya kopyalayın

Anonim
  • Makro, çalışma kitabınıza Ana adlı bir sayfa ekler ve bu çalışma sayfasındaki çalışma kitabınızdaki her sayfadaki hücreleri kopyalar.
  • İlk makro normal bir kopyalama yapar ve ikinci makro Değerleri kopyalar.
  • Makronun alt öğeleri aşağıdaki işlevleri kullanır, makrolar işlevler olmadan çalışmaz.
Sub CopyFromRow() Dim sh As Worksheet Dim DestSh As Worksheet Dim shLast As Long Dim Last As Long If SheetExists("Master") = True O zaman MsgBox "Sayfa Yöneticisi zaten var" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = BuWorkbook'taki Her sh için. sh.Rows(3), sh.Rows(shLast)).Copy DestSh.Cells(Last + 1, 1) End If End If Next If Next Application.ScreenUpdating = True End Sub Sub CopyFromRowValues() Dim sh As Worksheet Dim DestSh As Worksheet Soluk Uzun Süre Dim Soluk Uzun If SheetExists("Master") = True O zaman MsgBox "Master sayfası zaten var" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Master" Her Biri İçin sh ThisWorkbook.Worksheets'te sh.Name DestSh.Name ise sh.UsedRange.Count > 1 ise Last = LastRow(DestSh) shLast = LastRow(sh) sh.Range(sh.Rows(3) ile, sh.Rows(shLast)) DestSh.Cells(Last + 1, 1).Resize(.Rows.Count, _ .Columns.Count).Value = .Value End With End If End If Next Application.ScreenUpdating = True End Sub İşlev LastRow(sh As Worksheet) Hatada Devam Et Sonraki LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormüller , _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False.Row On Error GoTo 0 End Function Function Lastcol(sh As Worksheet) Hata Devam Ediyor Sonraki Lastcol = sh.Cells.Find(What:=" *", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column On Error GoTo 0 End Function Function SheetExists(SName As String, _ Opsiyonel ByVal WB As Workbook) olarak Boolean On Error Devam Et Sonraki WB Hiçbir Şey Değilse O halde Set WB = ThisWorkbook SheetExists = CBool(Len(Sheets(SName).Name)) End Function