大量のデータに対して多数の散布図を作成するマクロを作成しています。各グラフのデータセットは、独自のタブにあります。独立変数は常にJ列にありますが、従属変数の位置は変更できます。私はK1セルに従属変数の名前を入れて、どの列がこのチャートの従属変数であるかをマクロに伝えます。 Chart.SeriesCollection.NewSeries.Values
の範囲を設定できるように、ヘッダ行の変数の名前を探すロジックをプログラムする必要があります。Excel VBAマクロのFindメソッドとMatch関数を使用したエラー
は、ここに私のデータセットは、(私が原因専有情報に本物を表示することはできません)のように見えるものです:
私はfindメソッドを試してみましたが、それはそれができることを示しますエラーを返しました「Tは、それが探しているものを見つける:
For Each ws in ThisWorkbook.Sheets
Set oChart = ws.ChartObjects.Add (Left:=0, Width:=375, Top:=0, Height:=225)
Set rXVal = ws.Range("J3")
Set rXVal = Range(rXVal, rXVal.End(xlDown))
sLookup = ws.Range("K1").Value
Set rHeader = Range(ws.Range("J2"), ws.Range("J2").End(xlToRight))
Set rCell = rHeader.Find(What:=sLookup, LookIn:=xlValues, LookAt:=xlPart, After:=Cells(1, 1), SearchOrder:=xlByColumns)
Set rYVal = Range(rCell.Offset(1, 0), rCell.Offset(1, 0).End(xlDown))
With oChart.Chart.SeriesCollection.NewSeries
.XValues = rXVal
.Values = rYVal
End With
Next
それから私はマッチを試してみましたが、私はまだそれがルックアップ値を見つけることができないことを示すエラーが表示されます。
For Each ws in ThisWorkbook.Sheets
Set oChart = ws.ChartObjects.Add (Left:=0, Width:=375, Top:=0, Height:=225)
Set rXVal = ws.Range("J3")
Set rXVal = Range(rXVal, rXVal.End(xlDown))
sLookup = ws.Range("K1").Value
Set rHeader = Range(ws.Range("A2"), ws.Range("A2").End(xlToRight))
iCol = Application.WorksheetFunction.Match(sLookup, rHeader, 0)
Set rYVal = ws.Cells(3, iCol)
Set rYVal = Range(rYVal, rYVal.End(xlDown))
With oChart.Chart.SeriesCollection.NewSeries
.XValues = rXVal
.Values = rYVal
End With
Next
sLookup
をCLng(sLookup)
に変更して、WorksheetFunction
の部分を省いてみましたが、まだ私が探しているものが見つからないことを示すエラーが表示されます。
クイックノート - ほとんどすべての作業を行いますが、常に範囲の前にワークシートを追加するようにします。たとえば、 'set rHeader = ws.Range(ws.Range(" A2 ")、...'、 'rYVal'などと同じです。 – BruceWayne