.NET で ExcelCOMコンポーネントを利用するとき意味が分からないエラーに遭遇した

oShapes = oSheet.Shapes
oShape = oShapes.AddShape(Type:=MsoAutoShapeType.msoShapeRectangle, _
    Left:=oRange.Left, Top:=oRange.Top, Width:=oRange.Width, Height:=oRange.Height)
 ↓
System.Runtime.InteropServices.COMException (0x800A03EC): Range クラスの Left プロパティを設定できません。


Dim nRangeLeft As Single = oRange.Left
Dim nRangeTop As Single = oRange.Top
Dim nRangeWidth As Single = oRange.Width
Dim nRangeHeight As Single = oRange.Height

oShapes = oSheet.Shapes
oShape = oShapes.AddShape(Type:=MsoAutoShapeType.msoShapeRectangle, _
    Left:=nRangeLeft, Top:=nRangeTop, Width:=nRangeWidth, Height:=nRangeHeight)
 ↓
エラー出ない

なにがまずいんだ。一旦Singleに入れてやらねばならんのか?