关于excel录制宏的问题

在excel中用VBA编制对数据进行处理的窗体。需要对把两组数据绘制成散点图。我在开启录制宏的情况下做出了这个曲线图,然后结束录制宏,将代码复制进vba窗体对应按键代码位置,运行时却提示运行错误“未找到以指定名称命名的项目”,但曲线也画出来了,只不过比我录制的少了X轴Y轴坐标标题、X轴刻度也没改代码如下:
Private Sub CommandButton9_Click()
'
' Macro5 Macro
'

'
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("Sheet2!$I$2:$J$33")
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetElement (msoElementLegendNone)
ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated)
ActiveSheet.ChartObjects("图表 12").Activate
Selection.Left = 15
Selection.Top = 87.41
ActiveSheet.ChartObjects("图表 12").Activate
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.ChartArea.Select
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.Axes(xlValue).AxisTitle.Select
Selection.Left = 9
Selection.Top = 73.41
ActiveSheet.ChartObjects("图表 12").Activate
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "功率(kW)"
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.ChartArea.Select
ActiveSheet.ChartObjects("图表 12").Activate
ActiveSheet.ChartObjects("图表 12").Activate
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.Axes(xlCategory).Select
ActiveSheet.ChartObjects("图表 12").Activate
ActiveChart.Axes(xlCategory).MajorUnit = 5
ActiveChart.Axes(xlCategory).MajorUnit = 2
End Sub
求解怎么修改以上代码让VBA实现自动令X轴显示为“风速(m/s)”,Y轴显示为“功率(kW)”,X轴主要刻度单位改为“2”

1.在这里以Excel为讲解工具,举例,首先打开OFFICE工具,新建一个文档。

2.了解好想要实现的功能,接下来就可以进行宏的录制,打开视图“菜单”,在视图菜单下找到宏按钮。

3.如下图所示的宏按钮,点击打开下拉菜单。

4.在下拉菜单中点击如下图所示的“录制宏”按钮。

5.可以为宏设定一个方便记忆的名字,如下图所示假设命名为“Test”。

6.接下来就可以进行想要录成宏的步骤了,当所有步骤完成后,在刚才点击录制宏的菜单处,点击“完成录制”。

7.接下来可以按住“Alt + F8”,会弹出如下的窗口,点击执行后,Excel会制动重复刚才所操作的步骤,这就实现了录制宏的功能了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-02
Private Sub CommandButton9_Click()
ActiveChart.SetSourceData Source:=Range("Sheet2!$I$2:$J$33")
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetElement (msoElementLegendNone)
ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated)
Selection.Left = 15
Selection.Top = 87.41
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlValue).AxisTitle.Select
Selection.Left = 9
Selection.Top = 73.41
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "功率(kW)"
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "风速(m/s)"
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).MajorUnit = 5
ActiveChart.Axes(xlCategory).MajorUnit = 2
End Sub本回答被提问者采纳