2017-11-08 12 views
0

VBAのsub()の最後のステップとして、結果のデータを基にして円グラフを作成するコードを作成しようとしましたが、ソースはデータの列の位置として、行の数は変化します。 ここに現在のコードがあります。dymanicデータソースを使用して円グラフを作成するVBAコード

'Create Pie chart 

Charts.Add 
ActiveChart.ChartType = xlPie 
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Cells(2, X + 2), Cells(1 + Y, X + 2)), PlotBy:= _ 
xlColumns 
ActiveChart.Location Where:=xlLocationAsObject, Name:="Market Simulator" 
ActiveChart.HasTitle = False 

X及びYは、先コードに移入され、Xは、グラフの元データは右にシフトされており、Yは、データソースが(ヘッダを除く)長である行数を指示何列伝えます。

サブを実行しようとすると、「_globalオブジェクトのメソッドセルが見つかりません」エラーが発生しました。オンラインで検索すると、データソースの場所が十分ではないためにトリガーされたようですが、シートとセルの両方が定義されているので、より具体的になる可能性があります。私もブックを追加しようとしましたが、それは助けにはなりませんでした。

答えて

1

シートですべての範囲/セル参照を完全に修飾していない可能性があります。グラフシートを追加すると、Sheet1はアクティブではなくなり、コードはチャートシート上のセルにアクセスしようとしますが、これは決してうまく終了しません。下の両方のセルの前の点に注意してください。

Charts.Add 
ActiveChart.ChartType = xlPie 
With Sheets("Sheet1") 
    ActiveChart.SetSourceData Source:=.Range(.Cells(2, x + 2), .Cells(1 + y, x + 2)), PlotBy:= _ 
xlColumns 
End With 
ActiveChart.Location Where:=xlLocationAsObject, Name:="Market Simulator" 
ActiveChart.HasTitle = False 
+1

こんにちはSJR、ありがとうございます、あなたの追加でコードが動作し、なぜそれが失敗した理由を説明してくれてありがとう。 – Braitaq

関連する問題