永发信息网

Excel录制宏后,运行时出现错误,为什么?怎么解决?

答案:2  悬赏:40  手机版
解决时间 2021-02-27 15:54
  • 提问者网友:原来太熟悉了会陌生
  • 2021-02-26 20:29
Sub 宏1()
'
' 宏1 宏
'

'
Sheets("Sheet2").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""12"""
ActiveChart.SeriesCollection(1).Values = "=Sheet1!$B$3:$B$17"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""34"""
ActiveChart.SeriesCollection(2).Values = "=Sheet1!$C$3:$C$17"
ActiveSheet.Shapes("图表 1").IncrementLeft -184.5
ActiveSheet.Shapes("图表 1").IncrementTop -81
ActiveSheet.Shapes("图表 1").ScaleWidth 1.3479166667, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("图表 1").ScaleHeight 1.3628474045, msoFalse, _
msoScaleFromTopLeft
Range("L20").Select
ActiveSheet.ChartObjects("图表 1").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).AxisGroup = 2
ActiveSheet.ChartObjects("图表 1").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.ChartArea.Select
End Sub
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-02-26 21:29
这个宏可能存在的问题有:
(1) Range("L20").Select
这段代码可能是放在Sheet1下的,因此该语句代表选中Sheet1的L20单元格,但由于前面有Sheets("Sheet2").Select使Sheet2为当前工作表,就没办法执行选中Sheet1的单元格。从上下文看该语句没必要,可以删去。如果还是想选中Sheet2,即当前激活工作表的单元格,可以这样修改:ActiveSheet.Range("L20").Select
(2)ActiveSheet.Shapes("图表 1")
图表1是第一次创建时Excel自动产生的名字,后续再次创建的名字可能变成 图表2,图表3……。这样程序就没办法执行了。如果可以确定只有一个图表,可以使用ActiveSheet.Shapes(1)
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-02-26 22:28
代码中引用“图表1”会出错的,因为你第二次运行宏时,新创建的图表名称已经变为“图表2”了,而图表1可能已经被你删除。因此,要编辑生成的图表,不能直接引用名称,而应在生成图表后,直接对active图表进行编辑。具体怎么操作,你再研究研究吧!希望能帮到你!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯