엑셀 2010Excel 차트 - 범위 참조하지 않고 VBA에
문제를 discountinuous 시리즈를 그리는 방법 : 난을 참조하지 않고 * VBA를 통해 *는 XY-분산 형 차트에 * 한 * * 불연속 * 시리즈를 그릴 필요 시트의 범위.
불연속에 빈 값을 삽입하여 시트 범위에 Y 값을 배치 할 때 쉽게 달성 할 수 있습니다. 데이터 선택> 숨겨진 셀 및 빈 셀에서 '빈 셀을 다음과 같이 표시 : 간격'을 선택하는 한.
그래서 내가 VBA를 통해 동일하게 재현하려고했다 :Sub addDiscountinuousSingleSeries()
Dim vx As Variant, vy As Variant
Dim chrtObj As ChartObject, chrt As Chart, ser As Series
Set chrtObj = ActiveSheet.ChartObjects("MyChart"): Set chrt = chrtObj.Chart
Set ser = chrt.SeriesCollection.NewSeries
vx = Array(0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
vy = Array(-1, 1, vbNullString, -1, 1, vbNullString)
'vy = Array(-1, 1, CVErr(xlErrNA), -1, 1, CVErr(xlErrNA)) 'doesn't work either
'vy = Range(RANGE_YVALUES_WITH_BLANK) 'this would work, but I do not want to reference a range
chrt.DisplayBlanksAs = xlNotPlotted 'VBA equivalent to 'Show empty cells as: Gaps'
With ser
ser.Name = "VBA Series"
.XValues = vx
.Values = vy
End With
End Sub
그러나 VY의 빈 값 다음은 예입니다 (빨간색으로 시리즈 2는 중요한 일입니다) 배열을 무시하고 두 개의 수직 막대가 연결되어있는 것처럼 보이므로 피하려고합니다 (녹색 계열).
은 내가 프로그래밍 중간 선을 삭제할 수 있다는 것을 알고 있지만, 실제 문제에서 나는 올바른 솔루션 (너무 복잡, 너무 느린)을하지 않을 것입니다 해결하기 위해 노력하고 있습니다.
내 질문 : 일련의 .Values 배열을 지정하여 예상되는 동작을 얻고 vba에서 두 개의 세로 녹색 세그먼트 (하나의 계열 만 있고 시트 범위에 대한 참조가 없음) 사이에 간격을 확보 할 수 있습니까?
나는 깨달았이 [OP] (https://superuser.com/questions/941463/can-empty-cells-be-entered-into-an-array -constant-in-excel)도 비슷한 문제가 있었지만 어떤 대답도 얻지 못했습니다. – Janthelme
Excel 2010에서는 사용할 수 있는지 모르지만 2016'vy = Array (-1, 1, CVErr (xlErrNA), -1, 1, CVErr (xlErrNA))는'chrt.DisplayValueNotAvailableAsBlank = True'와 함께 작동합니다. –
감사합니다. DisplayValueNotAvailableAsBlank 속성은 Excel 2010에 존재하지 않으므로 2010 년 이후에 업그레이드되었을 수 있습니다. – Janthelme