2016-06-29 24 views
0

セル値に基づいてx軸を自己更新するように設定されたコードがあります。私はこれらの値を日付として表示するが、標準的なテキストタイプの書式設定(たとえば、私のx軸の各点として1月16日というスタイルがある)を使用したい。しかし、ユーザーがコード内で参照されているこれらのセルに必要な最小値と最大値を入力しているので、このコードが認識してプロットできるように、テキストとして取り上げるだけです。下の**の行にエラーが表示されます。私は何をすべきか分かりません。ありがとう!グラフw x軸の日付

With ActiveSheet.ChartObjects("Chart 2").chart 
    Select Case Target.Address 
     Case "$L$37" 
     **.Axes(xlCategory).MaximumScale = Target.Value** 
     Case "$L$38" 
     .Axes(xlCategory).MinimumScale = Target.Value 
     Case "$L$39" 
     .Axes(xlCategory).MajorUnit = Target.Value 
     Case "$O$37" 
     .Axes(xlValue).MaximumScale = Target.Value 
     Case "$O$38" 
     .Axes(xlValue).MinimumScale = Target.Value 
     Case "$O$39" 
     .Axes(xlValue).MajorUnit = Target.Value 
    End Select 
    End With 
+0

'With'文は正しいですか?私はあなたが '... ChartObjects(1).Chart'を行うことができることを知っていますが、チャート名の使用についてはわかりません。 'ActiveSheet.Charts(" Chart 2 ")。Chart'を実行してみてください。 – BruceWayne

+0

私は今まで別のグラフで私と一緒に働いていましたが、私はあなたの考えを試してみます –

+0

@BruceWayne、それはうまくいきませんでした –

答えて

1

変更されたコード、currentyチャートを更新していることを確認するだけで、すべてのセルのアドレスを手動で作成しました。

Public Sub Update_Chart() 

With ActiveSheet.ChartObjects("Chart 2").Chart 
    .Axes(xlCategory).MaximumScale = Range("$L$37") 
    .Axes(xlCategory).MinimumScale = Range("$L$38") 
    .Axes(xlCategory).MajorUnit = Range("$L$39") 

    ' this line you can modifty to whatever format you want your axis to have, the user doesn't need to keep the format on the worksheet cell itself 
    .Axes(xlCategory).TickLabels.NumberFormat = "mmm-yy" ' "[$-409]d-mmm-yy;@" 

    .Axes(xlValue).MaximumScale = Range("$O$37") 
    .Axes(xlValue).MinimumScale = Range("$O$38") 
    .Axes(xlValue).MajorUnit = Range("$O$39") 

    ' change to whatever format you want your Y-Axis you want 
    .Axes(xlValue).TickLabels.NumberFormat = "mmm-yy" 
End With 

End Sub 
+0

という名前です。このコードはワークシートのコードにあり、マクロではありません。また、これを実行すると、最初のケースでエラーが発生します。ユーザーは特定のセルにテキストとして日付を入力しています。コード内のこれらのセルは、ユーザーが入力したセルと単純に同じです。別のグラフにこのメソッドを使用しましたが、日付スタイルのx軸は使用しません。 –

+0

@JustinAnderson申し訳ありませんが、私はあなたのニーズに従っていないようです。私は、このようなコードを、ある範囲のセルに入力されているものに応じて、チャートのX軸、​​Y軸、およびすべてのシリーズコレクションを更新する状況にしています。ユーザーが関連するチャートの範囲を更新したら、私は自分のコードを実行しているので、私はtrigerredイベント(ボタン、またはuserformによって)を持っています。 –

+0

はい、それは私がやろうとしていることです!ユーザーはこれらのセルに日付を入力し、ボタンをクリックして軸を更新します。 –

関連する問題