2013-10-02 2 views
0

Je convertis une application EXCEL 2003 en EXCEL 2010. Les données s'affichent très bien, mais l'axe n'apparaît plus. quelle fonction pour montrer l'axe avec l'échelle automatique?Excel 2010 L'axe du graphique n'est pas affiché

Par exemple: Si vous tracez la série suivante dans un diagramme linéaire Excel. [0.22,0.33,0.44,0.55,0.66,0.77,0.88,0.99,1.1,1.21,1.32,1.43,1.54,1.65,1.76,1,87,1,98,2.09,2.2] Excel détermine que les valeurs de l'axe y doivent être [ 0,0,5,1,1,5,2,2,5] [How does Excel determine the axis values for charts?1. Comment faire l'axe y avec les valeurs automatiques [0,0.5,1,1,2,2,5] montrées dans le tableau?

Merci

mis à jour avec les codes connexes -

With ActiveChart 
     .SeriesCollection(2).Select 
     '.SeriesCollection(2).AxisGroup = 2 

     .HasTitle = True 
     .ChartTitle.Text = OutputTitle & Chr(10) & ChartTitle2 
     .Axes(xlValue).HasTitle = True 
     .Axes(xlValue).AxisTitle.Text = AxisTitle1 
     .Axes(xlValue).AxisTitle.Font.Bold = False 
     .HasAxis(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary) = True 
     .Export Filename:=ExportFile, FilterName:="GIF" 
End with 

Si je décommenter » .SeriesCollection (2) .AxisGroup = 2, je vais obtenir l'axe y montrer, mais les étiquettes de l'axe x sont embrouillés avec discordance avec les valeurs.

tableau actuel - enter image description here

désiré graphique avec axe écaillée montré - enter image description here

Répondre

2

Pour vous assurer de l'axe est sur l'utilisation ceci:

With xlApp.ActiveChart 
     .HasAxis(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary) = True 
End With 

valeurs de la plage sont automatiques sauf indication contraire comme ceci:

' Set Axis Scales 
    With xlApp.Charts("Chart Name").Axes(2) 
     .MinimumScale = 100 
     .MaximumScale = 2000 
     .MajorUnit = 1000 
     .MinorUnit = 100 
    End With 

Juste pour être un peu plus complet try aborder explicitement chaque valeur et la catégorie et voir si cela aide.

With xlApp.ActiveChart 
    .SeriesCollection(1).XValues = "='sheet name'!R21C4:R46C4" 
    .SeriesCollection(1).Values = "='sheet name'!R21C5:R46C5" 
    .SeriesCollection(1).Name = "='series name'" 
    .SeriesCollection(1).axisgroup = Excel.XlAxisGroup.xlPrimary 
    .HasAxis(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary) = True 
    .HasAxis(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary) = True 
    .Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).HasTitle = True 
    .Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).AxisTitle.Characters.Text = "x axis" 
    .Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).HasTitle = True 
    .Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).AxisTitle.Characters.Text = "y axis" 
End With 

Je vois votre groupe d'axes est réglé sur 2, vous utilisez deux axes?

Set comme ceci:

.SeriesCollection(2).axisgroup = Excel.XlAxisGroup.xlPrimary 

* Modifier *

Pour définir autoscale sur l'axe:

.Axes(xlValue).MinimumScaleIsAuto = True 
.Axes(xlValue).MaximumScaleIsAuto = True 
.Axes(xlValue).MinorUnitIsAuto = True 
.Axes().MajorUnitIsAuto = True 
.Axes().DisplayUnit = xlHundreds 
+0

Merci pour votre réponse rapide! J'ai essayé mais ça n'a pas marché. J'ai mis à jour ma question avec les codes connexes. Pourriez-vous s'il vous plaît regarder cette partie des codes et voir si vous trouvez les problèmes. Merci – Don

+0

Encore une édition, je pense que votre problème avec la ligne commentée est le 2. Avez-vous l'intention de le définir comme un graphique à deux axes? changez-le à la ligne que j'ai montré dans mon post Excel.XlAxisGroup.xlPrimary –

+0

quand je commente .SeriesCollection (2) .axisgroup = 2, il devrait par défaut .SeriesCollection (2) .axisgroup = Excel.XlAxisGroup.xlPrimary. J'ai toujours du mal à le faire en fonction de ce que vous avez suggéré ici. Mais je vois X, table d'axe Y montrée mais l'échelle non montrée. J'ai joint ma carte actuelle et le graphique désiré dans le montage. Ai-je besoin de l'ajuster manuellement? Le graphique Excel 2003 le fait automatiquement pour moi. Pourquoi pas 2010? – Don

Questions connexes