2012-08-13 3 views
1

나는 이것이 버그라고 확신하지만 뭔가를 놓친 것 같습니다.테두리 선을 프로그래밍 방식으로 변경하면 Excel 2007 차트가 업데이트되지 않음

(에드 :

그래서 (눈에 보이는 모든 라인) 표면 차트는 내가 원하는 것입니다 내가 이미지를 게시하려고하지만,이 일이 나에게 그 원인 새로운 계정을 게시시키는되지 확인 .. 내가 test() 상점을 실행하면

Sub test() 
    Charts.Add 
    ActiveChart.charttype = xlSurface 
    test2 
End Sub 
Sub test2() 
Dim a 
    For Each a In ActiveChart.Legend.LegendEntries 
     a.LegendKey.Format.Line.Visible = msoTrue 
     a.LegendKey.Format.Line.ForeColor.RGB = RGB(0, 0, 0) 
     ActiveChart.Refresh 
    Next a 
End Sub 

:하지만 당신은이 코드를 실행해야합니다 생각) 다음

그리고 데이터의 내 테이블을 만드는 것이 할 수있는과를 얻을 수 어, 차트는 얻을 수 있지만 선은 없습니다 (이는 기본 Excel입니다). 다시 test2을 다시 실행하면 줄이 채워집니다. 물론 이것은 절대 의미가 없습니다.

본인은 결코이 초보자가 아닙니다. (개인 계정에서 몇 가지 질문에 답변했지만 직장에서 액세스 할 때 차단되었습니다.) 나는 ActiveChart.Refresh 대신 DoEvents을 시도했지만 주사위는 사용하지 않았습니다. 나는 또한 이것이 2007 년 버그처럼 보일 정도로 Excel 2007에서 올바르게 작동한다는 것을 확신합니다. (이것은 처음에 집에서 이것을 시도한 곳입니다) 버그가 있거나 없으므로 2007 년에 해결해야하므로 솔루션을 찾고 있습니다. 누구든지 제발?

답변

0

죄송합니다. 오랫동안 답변을 드려 죄송합니다.하지만 내 VM에서 Excel 2007을 가져 오려고했지만 내 VM이 문제가되어 Excel 2007에서이 코드를 테스트하지 못했지만 제대로 작동해야합니다.

"Active-Something"을 사용하지 말 것을 제안하는 이유입니다. ActiveCell, ActiveSheet, Activeworkbook 등입니다. 변수를 항상 선언하고 변수를 사용하십시오. 너는 절대 잘못하지 않을 것이다. 이 예문보기

Sub test() 
    Dim objChrt As ChartObject 

    Set objChrt = ActiveSheet.ChartObjects.Add _ 
    (Left:=50, Width:=200, Top:=50, Height:=200) 

    With objChrt 
     .Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:C5") 
     .Chart.ChartType = xlSurface 
     test2 .Chart 
    End With 
End Sub 

Sub test2(chrt As Chart) 
    Dim a 
    For Each a In chrt.Legend.LegendEntries 
     a.LegendKey.Format.Line.Visible = msoTrue 
     a.LegendKey.Format.Line.ForeColor.RGB = RGB(0, 0, 0) 
     chrt.Refresh 
    Next a 
End Sub 
관련 문제