Microsoft Excel'de VBA kullanarak her sayfanın UseRange değerini bir sayfaya kopyalayın

Anonim

Her çalışma sayfasının kullanılan aralığını Ana sayfaya kopyalamak istiyorsanız bu makaleyi okumalısınız. Her çalışma sayfasındaki verileri kopyalamak için VBA kodunu kullanacağız ve ardından üzerine yazmadan başka bir sayfaya yapıştıracağız.

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; makro, işlevler olmadan çalışmaz.

Sayfa1 ve Sayfa2'den alınan verilerin anlık görüntüsü aşağıdadır:

VB editörünü başlatmak için aşağıdaki adımları izlememiz gerekiyor:

  • Geliştirici sekmesine tıklayın
  • Kod grubundan Visual Basic'i seçin

  • Aşağıdaki kodu standart modüle kopyalayın
Sub CopyUsedRange() Dim sh As Worksheet Dim DestSh As Worksheet Dim Dim Last If SheetExists("Master") = True Then MsgBox "Sayfa Ana zaten var" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh .Name = BuÇalışma Kitabındaki Her sh için "Master".Çalışma Sayfaları sh.Name ise HEDEFSh.Name Sonra sh.UsedRange.Count > 1 ise Last = LastRow(DestSh) sh.UsedRange.Copy DestSh.Cells(Last + 1, 1 ) End If End If Next Application.ScreenUpdating = True End Sub Sub CopyUsedRangeValues() Dim sh As Worksheet Dim DestSh As Worksheet Dim If SheetExists("Master") = True Then MsgBox "Ana sayfa zaten var" Exit Sub End Eğer Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = ThisWorkbook.Worksheets'teki Her sh için "Master" ise sh.Name DestSh.Name If sh.UsedRange.Count > 1 ise Last = LastRow(DestSh) With sh.UsedRange DestSh.Cells(Last + 1, 1).Resize(.Rows.Count, _ .Columns.Count).Value = .Value End With End If End If Next Ap plication.ScreenUpdating = True End Alt Fonksiyonu LastRow(sh As Worksheet) Hatada Devam Ediyor Sonraki LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:= xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False.Row On Error 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) As Boolean On Error Devam Et Sonraki WB Hiçbir Şey Değilse WB = ThisWorkbook SheetExists = CBool(Len(Sheets(SName)) .Ad)) Bitiş Fonksiyonu 

Şimdi, makro kodu ayarlanmıştır; “CopyUsedRange” makrosunu çalıştıracağız ve yeni bir “Master” sayfası ekleyecek ve her sayfadaki verileri kopyalayacaktır.

Çözüm:Birden çok sayfadan veri kopyalamak manuel bir iştir; Yine de; yukarıdaki kod ile bir makro üzerinde tek bir tıklama ile verileri birleştirebiliriz.

Bloglarımızı beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. Bize e-posta sitesinde yazın