Formata a tabela de dados usando o VBA (os valores são como Double, mas String é necessário para formatação)

1

Atualmente trabalhando em um script vba que cria gráficos automaticamente. Eu gostaria de adicionar uma tabela de dados que é feita usando: .HasDataTable = True

No entanto, gostaria de mostrar os valores das séries como porcentagens. Atualmente, o valor é definido como um Double contendo todos os valores, mas não a formatação correta.

OusodeFormat()ouFormatPercent()forneceráosvalorescorretos,masretornaráemumaString.Issofuncionaparaatabeladedados,masnãoparaoprópriográfico,jáquenãoreconhecemaisosvalores.

Minhaperguntaseresumeaseépossívelmostrarosvalorescomoporcentagensnatabeladedadosenográfico?SemoVBA,éfeitofacilmenteformatandoosdadosnasprópriascélulas.Oproblemaéque,paraformatação,umaStringéretornada,masparaográfico,IntegersouDoublessãonecessários.

Qualquerajudaébem-vindae,porfavor,deixe-mesaberseaperguntanãoéclara.

Abaixoestápartedocódigo.SeeudiminuiroRatiocomoStringeusarFormatPercent(),obtenhoaformataçãosolicitada,mas,emseguida,osvaloresemRatioarnãosãomaisduplicados,porissonãoforneceográficonecessário.

DimRatio()AsDoubleDimlabels()AsStringReDimRatio(1ToHeight)ReDimlabels(1ToHeight)ForEachColumnInsArraylabels(i)=Sheets(DataSheetName).Cells(LabelsRow,Column)Ratio(i)=Math.Round(Sheets(DataSheetName).Cells(LabelsRow+3,Column),2)i=i+1NextColumnSetmyChtObj=Sheets(DrawSheetName).ChartObjects.Add(Left:=Left,Width:=Width,Top:=Top,Height:=HeightGraph)DimsrsNew1AsSeries'AddthechartWithmyChtObj.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

Em adição ao acima. A imagem abaixo pode ilustrar melhor o que eu quero.

    
por WhoKnows19 10.11.2015 / 15:57

0 respostas