2016-06-29 6 views
0

셀 값을 기반으로 x 축을 자체 업데이트하도록 설정된 코드가 있습니다. 이 값을 날짜로 표시하려고하지만 표준 텍스트 형식의 서식을 사용합니다 (예 : x 축의 각 점으로 월 - 년, 1 월 - 16 월 스타일). 그러나 사용자가 코드에서 참조하는 셀에 원하는 최소값과 최대 값을 입력하기 때문에이 코드를 텍스트로 인식하여이 코드가 인식하고이를 그릴 수 있도록하고 싶습니다. ** 표시가있는 줄에 오류가 있습니다. 나는 무엇을해야할지 모르겠다. 감사!그래프 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

그래, 그게 내가하려는거야! 사용자는이 셀에 날짜를 입력 한 다음 버튼을 클릭하여 축을 업데이트합니다. –