excel - 定位图表
问题描述
我的代码,从 sheet1 中的数据绘制图表并将图表放置在 sheet2 的指定位置,在定位命令中被中断:
.Left = Range("B2").Left
.Top = Range("B2").Top
编译错误:
编译错误:找不到方法或数据成员
谁能帮我找出原因?
Sub addchrt()
Dim ws As Worksheet
Dim rng As Range
Dim objChrt As ChartObject
Dim chrt As Chart
Set rng = Sheets("Sheet1").Range("A2:A20,C2:C20")
Set ws = Sheets("Sheet2")
With ws
.Shapes.AddChart
Set objChrt = .ChartObjects(.ChartObjects.Count)
Set chrt = objChrt.Chart
With chrt
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=rng
.HasTitle = True
.ChartTitle.Text = "Test"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "xxx"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "yyyy"
.HasLegend = False
.Left = Range("B2").Left
.Top = Range("B2").Top
End With
End With
End Sub
解决方案
在您未经编辑的代码中。有一个额外End With
的问题导致了问题
您试图访问Chart对象的.Left
and.Top
属性。哪个不存在。
但是,您拥有的ChartObject对象确实有一个.Left
和一个.Top
属性。所以那些应该像这样使用
objChrt.Left = Range("B2").Left
objChrt.Top = Range("B2").Top
您还可以在制作图表时设置图表的位置,就像 Rory 在他的评论中提到的那样,
推荐阅读
- git - 无法在 MacBook Air 上克隆 git repo
- ubuntu - 如何在ufw中使用非数字外国IP地址?
- python - discord.py 中的 wait_for() 在 dm 中不起作用
- php - PHP通过多层类继承方法
- python - 如何根据矩阵值更改 numpy 矩阵的形状
- javascript - 反应:渲染没有返回任何内容。这通常意味着缺少返回语句
- c++ - GetAddrInfo 和多线程或 GetAddrInfoExA 和 WaitForSingleObject
- python - 当熊猫数据框中的列值发生变化时,如何根据两个阈值放置两个不同的标志
- python - OSError: [Errno 8] 执行格式错误 (python)
- haskell - foldMap 回调中强制的意外行为