2015-08-22 17 views
0

我想第一次使用Excel宏,但由於某種原因,當我嘗試標記y軸時,相應的VBA代碼不喜歡它。我得到一個運行時錯誤424,然後它說對象需要。當試圖標記y軸時需要的對象

Sub Graphplotz() 
' 
' Graphplotz Macro 
' 

' 

    Range("A2:B15").Select 
    ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmooth).Select 
    ActiveChart.SetSourceData Source:=Range("Plot!$A$2:$B$15") 
    ActiveChart.ChartTitle.Select 
    Selection.Format.TextFrame2.TextRange.Characters.Text = _ 
     "Stress vs. Deformation" 
    With Selection.Format.TextFrame2.TextRange.Characters(1, 22).ParagraphFormat 
     .TextDirection = msoTextDirectionLeftToRight 
     .Alignment = msoAlignCenter 
    End With 
    With Selection.Format.TextFrame2.TextRange.Characters(1, 6).Font 
     .BaselineOffset = 0 
     .Bold = msoFalse 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.RGB = RGB(89, 89, 89) 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 14 
     .Italic = msoFalse 
     .Kerning = 12 
     .Name = "+mn-lt" 
     .UnderlineStyle = msoNoUnderline 
     .Spacing = 0 
     .Strike = msoNoStrike 
    End With 
    With Selection.Format.TextFrame2.TextRange.Characters(7, 16).Font 
     .BaselineOffset = 0 
     .Bold = msoFalse 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.RGB = RGB(89, 89, 89) 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 14 
     .Italic = msoFalse 
     .Kerning = 12 
     .Name = "+mn-lt" 
     .UnderlineStyle = msoNoUnderline 
     .Spacing = 0 
     .Strike = msoNoStrike 
    End With 
    ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) 
    Selection.Format.TextFrame2.TextRange.Characters.Text = "Deformation" 
    With Selection.Format.TextFrame2.TextRange.Characters(1, 11).ParagraphFormat 
     .TextDirection = msoTextDirectionLeftToRight 
     .Alignment = msoAlignCenter 
    End With 
    With Selection.Format.TextFrame2.TextRange.Characters(1, 11).Font 
     .BaselineOffset = 0 
     .Bold = msoFalse 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.RGB = RGB(89, 89, 89) 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 10 
     .Italic = msoFalse 
     .Kerning = 12 
     .Name = "+mn-lt" 
     .UnderlineStyle = msoNoUnderline 
     .Strike = msoNoStrike 
    End With 
    ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) 
    ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Stress(Mpa)" 
    Selection.Format.TextFrame2.TextRange.Characters.Text = "Stress(Mpa)" 
    With Selection.Format.TextFrame2.TextRange.Characters(1, 11).ParagraphFormat 
     .TextDirection = msoTextDirectionLeftToRight 
     .Alignment = msoAlignCenter 
    End With 
    With Selection.Format.TextFrame2.TextRange.Characters(1, 11).Font 
     .BaselineOffset = 0 
     .Bold = msoFalse 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.RGB = RGB(89, 89, 89) 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 10 
     .Italic = msoFalse 
     .Kerning = 12 
     .Name = "+mn-lt" 
     .UnderlineStyle = msoNoUnderline 
     .Strike = msoNoStrike 
    End With 
    Range("L7").Select 
End Sub 
+0

請刪除與代碼無關的所有內容。並指出導致錯誤的行。 http://stackoverflow.com/help/mcve – Andre

回答

0

更換 ActiveChart.SetElement(msoElementPrimaryValueAxisTitleAdjacentToAxis)

ActiveChart.SetElement msoElementPrimaryValueAxisTitleBelowAxis

的msoElementPrimaryValueAxisTitleAdjacentToAxis const不會出現工作。