2016-05-18 5 views
1

私はVBAを使用して多数のチャートを作成しようとしています。私はマクロ記録機能を使い始めましたが、それほど進んでいませんでした。Excel 2007 VBAで複数のチャートを作成

私はそれぞれの行をグラフ化する必要のある可変データセットを持っています。 1つのセルがシリーズ名であり、データは同じ行の(固定された)セルの範囲であり、一連の日付(最上行)に対してプロットされます。

私は、各行ラウンドループの各シリーズの新しいグラフを生成したい、でA3は、名前データを持つ最初のセルであるならばそれでは、私が持っていることは(1つのグラフのために)

Charts.Add 
ActiveChart.ChartType = xlColumnClustered 
ActiveChart.SetSourceData Source:=Sheets("Data").Range("A3") 
ActiveChart.SeriesCollection(1).Name = "='Data'!$A$3" 
ActiveChart.SeriesCollection(1).Values = "='Data'!$MO$3:$RY$3" 
ActiveChart.SeriesCollection(1).XValues = "='Data'!$MO$1:$RY$1" 
ActiveChart.Name = Sheets("Data").Range("A3") 

これです。

私は入力ボックスから開始点を取得することができましたが、それは本当に必要ではありません。他の人のために使うのは私のためではありません。私はそれが空白のセルに達するまで固定点で始まり、循環していれば幸せだろう。

私ができないビットは、各反復のセル範囲をどのように生成するかを理解することです。

{編集} screenshot of data;

{EDIT2}範囲はあなたを参照さScreenshot of example Chart

+0

こんにちはブライアン、あなたは何をしようとしているかはあまり明確ではありません。あなたのデータがどのように見えるの画像を投稿できますか? –

答えて

0

変数に「移動」の各反復の基準を使用することができます。 たとえばあなたが列Aの最初の10行の中にいくつかのテキストを挿入したい、あなたが書くことができます:

Range("A1").Value = "Hello" 
Range("A2").Value = "Hello" 
Range("A3").Value = "Hello" 
Range("A4").Value = "Hello" 
etc... 

代わりにあなたがして、各反復でRange参照行ダウン「」に移動ループを使用することができますループ変数iを使用して:

For i = 1 to 10 
    Range("A" & i).Value = "Hello" 
Next i 

所望の結果を達成するのに必要であれば2によってiの値を乗算することにより偶数行2-20にテキストを追加する例Range("A" & i * 2).Value = "Hello"ためにあなたはまた、行の基準を調整することができ。

あなたがあなたのデータを持っている各行に対してループを繰り返したい、あなたの場合、「A3」で、 ""符でトップセル参照を入れながら Range("").End(xlDown).Rowを使用して一番下の行の行番号を見つけることができます

が一緒にこのすべてを置く、あなたはの線に沿って何かを探している:

for i = 3 to Range("A3").End(xlDown).Row 'Loop for each row from 3 to the bottom 
    Charts.Add 
    ActiveChart.ChartType = xlColumnClustered 
    ActiveChart.SetSourceData Source:=Sheets("Data").Range("A" & i) 
    ActiveChart.SeriesCollection(1).Name = "='Data'!$A" & i 
    ActiveChart.SeriesCollection(1).Values = "='Data'!$MO" & i & ":$RY" & i 
    ActiveChart.SeriesCollection(1).XValues = "='Data'!$MO$1:$RY$1" 
    ActiveChart.Name = Sheets("Data").Range("A" & i) 
next i 

それはあなたが期待される正確にどのように動作しない場合は、おそらく上記を微調整する必要がありますが、私はこれがあなたの役に立てば幸いを解決する。

+0

優れています。はい、それは私がやろうとしていたものでした。今度は、各繰り返しを新しいシートに追加するのではなく、既存のシートの周りに何らかのエラーチェックを入れる必要がありますが、それは大きな感謝です。 – Brian

関連する問題