태그 보관물: format

format

VBA를 사용하여 데이터 테이블 형식화 (값은 Double이지만 형식화에는 문자열이 필요함) 코드의 일부입니다.

현재 차트를 자동으로 만드는 vba 스크립트 작업 중입니다. .HasDataTable = True를 사용하여 수행되는 데이터 테이블을 추가하고 싶습니다.

그러나 시리즈의 값을 백분율로 표시하고 싶습니다. 현재 값은 모든 값을 포함하지만 올바른 형식이 아닌 Double로 정의됩니다.
여기에 이미지 설명을 입력하십시오

Format () 또는 FormatPercent ()를 사용하면 올바른 값을 제공하지만 문자열로 반환됩니다. 이것은 더 이상 값을 인식하지 못하기 때문에 데이터 테이블에서는 작동하지만 차트 자체에서는 작동하지 않습니다.

내 질문은 데이터 테이블과 차트 모두에서 값을 백분율로 표시 할 수 있는지 여부에 달려 있습니다. VBA가 없으면 셀 자체의 데이터를 형식화하여 쉽게 수행 할 수 있습니다. 문제는 문자열 형식화를 위해 반환되지만 그래프 정수 또는 복식이 필요하다는 것입니다.

도움이 필요하면 질문이 확실하지 않은 경우 알려주십시오.

아래는 코드의 일부입니다. 비율을 문자열로 어둡게하고 FormatPercent ()를 사용하면 요청 된 형식을 얻지 만 비율 ar의 값이 더 이상 두 배가되지 않으므로 필요한 차트를 제공하지 않습니다.

Dim Ratio() As Double   
Dim labels() As String

ReDim Ratio(1 To Height)
ReDim labels(1 To Height)


For Each Column In sArray
        labels(i) = Sheets(DataSheetName).Cells(LabelsRow, Column)
        Ratio(i) = Math.Round(Sheets(DataSheetName).Cells(LabelsRow + 3, Column), 2)
        i = i + 1
Next Column


Set myChtObj = Sheets(DrawSheetName).ChartObjects.Add(Left:=Left, Width:=Width, Top:=Top, Height:=HeightGraph)

Dim srsNew1 As Series

 ' Add the chart
With myChtObj.Chart
    .ChartArea.Fill.Visible = False
    .ChartArea.Border.LineStyle = xlNone
    .PlotArea.Format.Fill.Solid
    .PlotArea.Format.Fill.Transparency = 1
    .HasTitle = True
    .ChartTitle.text = Title
    .HasLegend = False

    .Axes(xlValue).TickLabels.NumberFormat = "0%"
    .Axes(xlCategory, xlPrimary).HasTitle = False

    'add data table
    .HasDataTable = True

     ' Make Line chart
    .ChartType = xlLine


     ' Add series
    Set srsNew1 = .SeriesCollection.NewSeries
    With srsNew1
        .Values = Ratio
        .XValues = labels
        .Name = "Ratio"
        .Interior.Color = clr3 'RGB(194, 84, 57)
    End With


End With

위의 추가. 아래 그림은 내가 원하는 것을 가장 잘 보여줍니다.



답변