2016-03-24 9 views
0

İki veri sayfam var, bir sayfa lower ends of ranges (ör. A1, B2 C3, E7, F1, G18 ve I1) içeriyor, diğer sayfa information modules içeriyor.Aralık ve geri dönüş aralığı değerini farklı sayfaya getirme

Şimdi, daha düşük aralık değerini almak için VBA'yı kullanmaya çalışıyorum, aralığın sonundaki boş hücrelere dayanarak bilgi modülü sayfasındaki üst aralık değerini bulun, iki değeri bir aralıkta birleştirin (örn. A1 : A1, B2: B2 C3: C3-E7: E11, F1: F8, G18: G26 ve I1: I10) ve üçüncü tabaka olarak kopya tüm aralık değerleri aşağı kolon A:

HEADER1 

SUBHEADER2 

DEVHEADER3 

FEESUB2 

FEESUB2 

FEESUB2 

FEESUB2 

FEESUB2 

ABC Services1 

• ABC1 

• ABC2 

• ABC3 

• ABC4 

• ABC5 

• ABC6 

• ABC7 

CDF Services3 

• ABC1 

• ABC2 

• ABC3 

• ABC4 

• ABC5 

• ABC6 

• ABC7 

• ABC8 

Additional Services and Fees1 

TEST2 

TEST2 

TEST2 

TEST2 
TEST2 

TEST2 

TEST2 

TEST2 

TEST2 

TEST2 

TEST2 
+2

SO hoş geldiniz! VBA kullanmayi * çok seveceksiniz ... *. Siteden ne beklediğinizden emin değilsiniz, ancak bunu yapmadığınızdan dolayı yapabileceğiniz pek bir şey yok. 1) bir soru sorun 2) denediğiniz kodu sağlayın. Lütfen [Nasıl Sorulur?] 'U (http://stackoverflow.com/help/how-to-ask) okuyun ve belirli bir soruyla geri gelin. –

+0

Teşekkürler @ScottHoltzman. Maalesef, görevle tanımlarken sorumu tamamen kaybettim. –

+0

Sorum, belirli bir kod parçasıyla ilgili değil, ancak bununla nasıl başa çıkılacağını soruyor. Bilgi modüllerinde her bir aralığın üst ucunu belirlemek için bir kod parçası yazmaya çalıştım, ancak bunun için şimdiden başarısız oldum çünkü aralık değeri modül sayfasından farklı bir sayfadaydı. Ve benzer problemleri yönetmek için çok zaman harcıyorum ama benzer bir şey bulamadım. –

cevap

0

varsayılarak yelpazesi başlar Her birinde 1 veya daha fazla satır ile istediğiniz bilgiyi içeren Sayfa 2'deki üst hücreyi temsil eden A1: A8: A8'de listelenir, ardından aşağıdaki kod bu listeleri toplar ve bunları A Sayfası3'ün A sütununa yerleştirir.

Option Explicit 

Sub GetInfo() 
Dim rngStart As Range 
Dim rngInfo As Range 
Dim Acell As Range 
    Sheets(3).Activate 
    For Each rngStart In Sheets(1).Range("A2:A8") 
    With Sheets(2) 
     Set rngInfo = .Range(rngStart.Value) 
     If Not IsEmpty(rngInfo.Offset(1, 0)) Then 
     Set rngInfo = Range(rngInfo, rngInfo.End(xlDown)) 
     End If 
     For Each Acell In rngInfo 
     Sheets(3).Cells(Sheets(3).UsedRange.Rows.Count + 1, 1).Formula = Acell.Value 
     Next Acell 
    End With 
    Next rngStart 
End Sub 
İlgili konular