Sub ChartWithAxisTitles()
Dim objChart As ChartObject
Dim myChtRange As Range
Dim myDataRange As Range
Dim myInitialRange As Range
Dim sInitialRange As String
If Not ActiveSheet Is Nothing Then
If TypeName(ActiveSheet) = "Worksheet" Then
If TypeName(Selection) = "Range" Then
Set myInitialRange = Selection
If myInitialRange.Cells.Count = 1 Then
Set myInitialRange = myInitialRange.CurrentRegion
End If
sInitialRange = myInitialRange.Address(True, True)
End If
With ActiveSheet
On Error Resume Next
Set myDataRange = Application.InputBox( _
Prompt:="选择包含图表数据的单元格区域.", _
Title:="选择图表数据", _
Default:=sInitialRange, _
Type:=8)
On Error GoTo 0
If myDataRange Is Nothing Then Exit Sub
On Error Resume Next
Set myChtRange = Application.InputBox( _
Prompt:="选择图表显示的单元格区域.", _
Title:="选择图表位置", _
Type:=8)
On Error GoTo 0
If myChtRange Is Nothing Then Exit Sub
Set objChart = .ChartObjects.Add( _
Left:=myChtRange.Left, _
Top:=myChtRange.Top, _
Width:=myChtRange.Width, _
Height:=myChtRange.Height)
With objChart.Chart
.ChartArea.AutoScaleFont = False
.ChartType = xlXYScatterLines
.SetSourceData Source:=myDataRange, PlotBy:=xlColumns
.HasTitle = True
.ChartTitle.Characters.Text = "我的标题"
.ChartTitle.Font.Bold = True
.ChartTitle.Font.Size = 10
With .Axes(xlCategory, xlPrimary)
.HasTitle = True
With .AxisTitle
.Font.Size = 8
.Font.Bold = True
.Characters.Text = myDataRange.Cells(1, 1)
End With
End With
With .Axes(xlValue, xlPrimary)
.HasTitle = True
With .AxisTitle
.Font.Size = 8
.Font.Bold = True
.Characters.Text = myDataRange.Cells(1, 2)
End With
End With
End With
End With
End If
End If
End Sub