2017-01-10 9 views
1

ファイルから値を読み取り、グラフを生成して計算を実行するプログラムがあります。可変行からのVBA更新グラフの範囲

2列/ 17000+行のデータセットをインポートし、特定の範囲からグラフを生成する必要があります。最初の列には、-5〜5mmのサイクリングを前後に維持する変位データが含まれています。私は、各サイクルで-2.5〜-4.5および2.5〜4.5mmの結果を分析する必要があります。

異なるデータセットの場合、極端な範囲を含む行の数が変わる可能性があるという問題があります。

MATCH関数を使用して、範囲の開始と終了の行番号を取得しています。たとえば、次のように私の場合は

=MATCH(2.5,Data!B200:B230,1)+199 
=MATCH(4.5,Data!B260:B290,1)+260 

ここでは、それぞれ216272が得られます。

質問:VBAコードでこれらの値を使用して、グラフを正しいデータセットで自動的に更新するにはどうすればよいですか?現在の範囲は、以下のように固定されている:

Sheets("Main").ChartObjects("Chart 12").Activate 'Cycle 1 - Evaluation(tension) 
ActiveChart.SeriesCollection(1).XValues = "=Data!$B$216:$B$272" 
ActiveChart.SeriesCollection(1).Values = "=Data!$C$216:$C$272" 

感謝/よろしくijなどの

答えて

1

Dim二つの変数、その後、あなたのSeriesXValuesValuesプロパティの値を作成するために、文字列変数にそれらを使用しています。例:

Dim i As Long, j As Long 
Dim ref1 As String, ref2 As String 

i = 216 'update with your MATCH formula 
j = 272 'update with your MATCH formula 

' create the references as string variables 
ref1 = "=Data!$B$" & i & ":$B$" & j 
ref2 = "=Data!$C$" & i & ":$C$" & j 

Sheets("Main").ChartObjects("Chart 12").Activate 'Cycle 1 - Evaluation(tension) 
ActiveChart.SeriesCollection(1).XValues = ref1 
ActiveChart.SeriesCollection(1).Values = ref2 
+0

ありがとうございました!それはスムーズに働いた。 –