2017-11-28 17 views
0

ユーザーが列上のセルを選択してグラフを生成し、その行のセル範囲内にグラフを生成するスプレッドシートを作成しています別のワークシートで。それはレポートを生成する前に行番号を変数として保存してチャート内で参照する

私はそれを後で参照できるように、私は、変数として行番号を保存します。

activerow = ActiveCell.Row 

私は、グラフのタイトルは、元のスプレッドシート上のセルを参照したいです。

ActiveChart.HasTitle = True 
Dim activecharttitle As String 
activecharttitle = INDIRECT(activerow&"7") 
ActiveChart.ChartTitle.Text = "='Sheet1'!activecharttitle" 

私は間違いを続けており、私は何が間違っているのか分かりません。誰かが私を喜ばせることができれば、それは大変に感謝しています。

はEDIT:私のコードの多くを追加:あなたはactiverowと列の「G」の範囲内のテキストを取得しようとしている

Dim activerow As String 
     activerow = ActiveCell.Row 
    Range(Cells(Selection.Row, 8), Cells(Selection.Row, 27)).Select 
    ActiveWorkbook.Charts.Add after:=Worksheets(Worksheets.Count) 
    ActiveChart.ChartType = xlLine 
    ActiveChart.SetSourceData Source:=Range(_ 
     "'Sheet1'!$H$7:$AA$7") 
    ActiveChart.SeriesCollection(1).XValues = _ 
     "='Sheet1'!$H$6:$AA$6" 
    ActiveChart.SeriesCollection(1).Values = _ 
     "='Sheet1'!$H$7:$AA$7" 

    ActiveChart.HasTitle = True 
    Dim activecharttitle As String 
    activecharttitle = INDIRECT("B"&activerow) 
    ActiveChart.ChartTitle.Text = "='Sheet1'!activecharttitle" 
+0

' INDIRECT(activerow& "7") - これが何を意図しているもの?もし 'activerow'が(例えば)10ならば、これは'間接(107) 'と評価されます。 –

+0

あなたは絶対に正しいです、@ TimWilliams。私は間接的にセル "B7"を私に返すつもりだった。私は私の投稿を編集し、私のコードを追加しました。 – Jessica

+0

@ジェシカ私のコードを参照してください私の答えは、あなたが意図した通りに動作するかどうかを参照してください –

答えて

0

activecharttitle = INDIRECT(activerow&"7")とした場合は、activecharttitle = Range("G" & activerow).Value2を使用する必要があります。

私はあなたが以下のようなコードの後に​​あると思う: `

ActiveChart.HasTitle = True 
Dim activecharttitle As String 

activecharttitle = Sheets("Sheet1").Range("G" & activerow).Value2 
ActiveChart.ChartTitle.Text = "=" & Sheets("Sheet1").Range("G" & activerow).Address(False, False, xlA1, xlExternal) 
+0

あなたの応答のためのおかげで@シャイ。あなたは正しいと私は行/列の値を混在させた。私はあなたが示唆した方法を使用してみましたが、Range関数からエラーがあります。 – Jessica

+0

@Jessica編集コードを試す –

+0

「実行時エラー '1004」:オブジェクト' _Global 'の' Range 'メソッドが失敗しました'エラーです。参照したいセルが、グラフが表示されているものとは別のワークシートにあります。 – Jessica