繁体   English   中英

Vba代码在Excel 2010中表现不正常?

[英]Vba code doesn't behave as it should in Excel 2010?

我只是有很多问题,找不到解决方案。 我制作了一个相当大的宏,该宏已经在Excel 2003中使用了几年。现在我的朋友升级到了Office 2010,突然宏无法正常工作。

我在此行中跟踪了一个错误,该错误似乎删除了变量的小数位。 这行:

varHeight = ActiveSheet.Pictures("temp").Height

在Excel 2003中,此行读取名为“ temp”的图片的高度,变量“ varHeight”的值为5,25。

如果我在Excel 2010中尝试同样的操作,则变量“ varHeight”将获得值5。因此,此处将删除小数。 我不知道这是怎么发生的。

变量varHeight由以下行声明:

Dim AntalMMPerPixel, IsoHöjd, varHeight As Double

我在此宏中所做的是构建一个蓝图,其中使用不同的图片来构建蓝图。 因此,我使用该图片的高度来计算其余图片的放置位置。

我在代码中使用了一个断点,以查看在Excel 2003和Excel 2010中为变量分配了什么值。

有什么技巧或想法值得赞赏吗?

最好的祝福

如果您拥有图片收藏夹,我似乎找不到任何文档。 各个版本之间可能进行了更改,但是似乎没有记载。 您可以尝试利用shape对象查看是否有帮助。 它在excel 2003中给了我正确的双重价值,但是,我无法在excel 2010上进行测试。

Public Sub Test()

    MsgBox GetPictureHeight(Sheets("Sheet1"), "Picture 1")
End Sub

Public Function GetPictureHeight(wrk As Worksheet, pictureName As String) As Double
'returns the height of the named picture on the specific worksheet

    Dim pic As Shape

    Set pic = wrk.Shapes(pictureName)

    GetPictureHeight = pic.height
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM