Debug.Print向我显示一个值,但是“如果不是”则不能使用此值

时间:2013-09-16 02:19:51

标签: vba if-statement powerpoint

我完全不知所措。找不到解决方案。 我要求形状的价值:

? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom

答案:11.29354

我写了一个例程:

If Not oshp.TextFrame.MarginBottom = 11.29354 Then
    TellMe = "MarginBottom =" & oshp.TextFrame.MarginBottom & " but not 11.29354" 
End If

例程不起作用。我声称形状的MarginBottom没有值,但在同一时刻它给了我结果的价值。

这意味着价值不是价值。有经验的人有这方面的背景信息吗?

1 个答案:

答案 0 :(得分:1)

它可能是四舍五入的,你可以在即时窗口进行测试:

首先分配值:

ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom = 11.23456789

然后检索它:

? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom
 11.23457 

它已更改,请根据新值和指定值进行测试:

? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom = 11.23456789
False
? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom = 11.23457
False

两者都不起作用,转换为字符串并测试:

? CStr(ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom) = "11.23457"
True

我不知道你是否能够测试字符串值,但这种比较可行。