我想在特定单元格位置添加形状,但由于某些原因无法获得在所需位置添加的形状。下面是我使用添加形状代码:vba在Excel中的特定单元格位置添加形状
Cells(milestonerow, enddatecellmatch.Column).Activate
Dim cellleft As Single
Dim celltop As Single
Dim cellwidth As Single
Dim cellheight As Single
cellleft = Selection.Left
celltop = Selection.Top
ActiveSheet.Shapes.AddShape(msoShapeOval, cellleft, celltop, 4, 10).Select
我使用的变量捕捉左侧和顶部位置,检查与值我添加形状,当看到正在在我的代码设置的值在录制宏时在手动位置手动。当我运行我的代码时,cellleft = 414.75和celltop = 51,但是当我在录制宏时手动添加形状到活动单元位置时,cellleft = 318.75和celltop = 38.25。我一直在解决这个问题,并且在线查看了很多关于添加形状的现有问题,但我无法弄清楚。任何帮助将不胜感激。
上述代码对我来说绝对合适。 –
'。激活'在第一行不一定意味着它等于选择然后...你需要检查它。或者在第一行中简单地将'.Activate'改成'.Select'。 –
我有同样的问题。 .Cell.Left和形状的真实位置之间有一点区别。 这个“bug”只发生在excel 2007上。在excel 2003中,vba代码运行良好。在2010年,我不知道。 我尝试Debug.Print,但我看不到任何效果。 – 2013-09-04 14:30:43