現在、グラフの範囲を積極的に定義するためのVBAコードを作成しています。Excelグラフの積極的な範囲を見つけるためのVBAコード
Sub ABC()
Dim count As Integer
Dim countAll As Integer
Dim i As Integer
Dim j As Integer
Dim filter As Variant
Dim exfilter As Variant
Dim ws As Worksheet
Set ws = Worksheets(1)
Dim n As Integer
'Cancel updating
Application.ScreenUpdating = False
'Clear oldsheet
Sheets("FLAGGED rest # list").Activate
Range("a3:a9999").ClearContents
'Autofilter sheet and copy range
Sheets("restaurant performance 2016").Activate
Range("a7:ah7").Select
Selection.AutoFilter
ActiveSheet.Range("$A$7:$AH$510").AutoFilter Field:=11, Criteria1:="<>"
ActiveSheet.AutoFilter.Range.Copy
'Paste to new sheet
Sheets("FLAGGED rest # list").Activate
Cells(2, 1).Select
ActiveSheet.Paste
'
'Clean out irrelevant data
Range("b2:az9999").Clear
'Count number of restaurants
Sheets("flagged rest # list").Activate
Cells(3, 1).Select
Sheets("flagged rest # list").Range(Selection, Selection.End(xlDown)).Select
count = Application.WorksheetFunction.CountA(Selection)
'Count number of weeks
Sheets("12 week trend").Activate
Cells(2, 2).Select
'Create Chart
n = 2 + count
rangestring = "$C$3:$O$" & n
rangestring2 = "'12 week trend'!" & rangestring
Sheets("12 week trend").Activate
Range(rangestring).Select
ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=Range(rangestring2)
For i = 3 To n
legendString = "$B$" & i
legendString2 = "='12 week trend'!" & legendString
ActiveChart.FullSeriesCollection(i - 2).Name = legendString2
Next i
ActiveChart.FullSeriesCollection(1).XValues = "='12 Week Trend'!$C$2:$O$2"
'Turn on updating
Application.ScreenUpdating = True
End Sub
私の主なハードルは、新しい列に追加されるデータを収容できるようにするコードが必要なようです。たとえば、このコードでは、データ範囲は列「O」にハードコードされていますが、範囲が停止する列を特定できるモデルを作成したいと考えています。
変数rangestring2
は、データの行数を動的に計算しますが、現時点では列に対して同じ行数を計算することはできません。
このフォーラムでは、これが私の初めてのご質問です。あなたの時間のためにありがとう!
としてあなたの適切な範囲の文字列を決定することを使用することができ、あなたのコードが提供働いていますC:O列にデータがありますか? – user3598756
はい!それは私がC:Oの間にデータを持っている限り動作しますが、それは他の列の追加データを受け取ることはありません。 –
データの一部のスクリーンショットへのリンクを追加したい場合があります。 – user3598756