Vba Print向我显示一个值,但';如果不是';不会';不能使用此值
我完全困惑不解。找不到解决办法。 我问形状的值:Vba Print向我显示一个值,但';如果不是';不会';不能使用此值,vba,if-statement,powerpoint,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" En
? 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没有这个值,但同时它也给了我这个值
这意味着价值不是价值。任何有经验的人都有这方面的背景信息?可能是四舍五入,您可以在即时窗口中进行测试,因此: 首先指定值:
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
我不知道您是否能够在字符串值上进行测试,但这种比较会起作用。在例程中,如果不是11.29354,则为
oshp.TextFrame.MarginBottom显示什么?如果在即时窗口中执行?告诉我,它会打印出什么?您能在本地窗口中查看此形状oshp
?你的选择.shaperage
是否可能与oShp
不同?嘿,大卫。-它向我展示了奇怪的“Margin.Bottom=11.29354,但不是11.29534”——这就是我如何理解这里有些可疑之处的原因。幸运的是CStr完成了任务。PERFEKT!非常感谢你!现在将始终使用CStr和类似的值。