我想在特定單元格位置添加形狀,但由於某些原因無法獲得在所需位置添加的形狀。下面是我使用添加形狀代碼: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