2016-03-24 7 views
0

2枚のデータシートがあり、1枚にlower ends of ranges(A1、B2 C3、E7、F1、G18、I1)が含まれ、もう1枚にinformation modulesが含まれています。範囲を見つけて別のシートに戻す

私はVBAを使用して、範囲の最後にある空のセルに基づいて情報モジュールシートの上限値を見つけ出し、2つの値を範囲(たとえばA1 :A1、B2:B2、C3:C3、E7:E11、F1:F8、G18:G26とI1:I10)と第3のシートにコピーすべての範囲の値ダウンカラム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

ようこそ!あなたがVBAを使用しようとしていることは素晴らしいことです。あなたがサイトから何を期待しているのか分からないが、あなたが1)質問しなかったので、私たちができることはあまりない。2)あなたが試みたコードを提供する。 [How to Ask](http://stackoverflow.com/help/how-to-ask)を読んで、特定の質問に戻ってください。 –

+0

ありがとう@ScottHoltzman。申し訳ありませんが、私はタスクによって記述していたときに私の質問を完全に忘れました。 –

+0

私の質問は、特定のコードの周りではなく、どのようにそのような問題に取り組むだろう。私は、情報モジュールの各範囲の上端を決定するコードを書くことを試みましたが、範囲値がモジュールシートとは異なるシートにあるため、すでに失敗しました。そして、私は同様の問題を抱える時間を費やしていますが、似たようなものは見つけられませんでした。 –

答えて

0

仮定範囲開始Sheet1にリストされています。A2:A8は、Sheet2の最上部のセルを表し、それぞれに1つ以上の行が必要な情報を含んでいます。これらのリストを収集し、Sheet3のA列に配置します。

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