Vbscript 如何将对象的宽度或高度放入变量中?
我目前正在Qlikview中使用VBScript,遇到了一个问题。我的代码当前如下所示:Vbscript 如何将对象的宽度或高度放入变量中?,vbscript,Vbscript,我目前正在Qlikview中使用VBScript,遇到了一个问题。我的代码当前如下所示: sub resize set obj = ActiveDocument.GetSheetObject("TX05") set fr = obj.GetFrameDef set pos = fr.Rect set WidthUser = ActiveDocument.Variables("vWidth") ' set OriginalWidth = pos.W
sub resize
set obj = ActiveDocument.GetSheetObject("TX05")
set fr = obj.GetFrameDef
set pos = fr.Rect
set WidthUser = ActiveDocument.Variables("vWidth")
' set OriginalWidth = pos.Width
' set OriginalHeight = pos.Height
' Ratio is 2.5
pos.Width = Cint(WidthUser.GetContent.String) * 2.5
' pos.Height = vPreferredWidth/vOriginalWidth * vOriginalHeight
pos.Height = 200 * 2.5
obj.SetFrame fr,true,dummy
msgbox("Changed Width to: " & pos.Width/2.5 & " " & Chr(13) & "Changed Height to: " & pos.Height/2.5)
End sub
vWidth是一个变量,用户可以在其中输入所需的宽度
那么,我想要实现什么呢?我希望用户能够键入所需的对象宽度,然后按下一个名为“调整大小”的按钮。按下按钮时,对象宽度应更改为所需的宽度,对象高度也应根据宽度的变化而变化
例如,我们从一个宽度为120、高度为200的对象开始。然后用户输入所需的宽度60,然后按下“调整大小”按钮。对象宽度应更改为60,对象高度应更改为100(60/120*200=100)。因此,在最终结果中,宽度/高度的比率仍然相同(120/200 vs 60/100)
我遇到的问题是试图捕捉对象的原始宽度和高度。我尝试使用:
set OriginalWidth = pos.Width
set OriginalHeight = pos.Height
但这根本不起作用。我尝试了各种各样的变化,但到目前为止没有任何效果。我不明白的是,当我打字时:
msgbox(pos.Width)
我确实得到了一个结果,但当我使用:
set OriginalWidth = pos.Width
msgbox(OriginalWidth)
我什么也得不到(我又回到了我的剧本中)
有人能帮我弄清楚吗?我也希望对代码的其余部分有一些反馈,因为我刚刚开始学习这个
提前谢谢
在帮助后编辑我将代码更改为:
sub resize
' Ratio is 2.5
set obj = ActiveDocument.GetSheetObject("TX05")
set fr = obj.GetFrameDef
set pos = fr.Rect
set WidthUser = ActiveDocument.Variables("vWidth")
set HeightUser = ActiveDocument.Variables("vHeight")
OriginalWidth = pos.Width
OriginalHeight = pos.Height
DesiredUserWidth = Cint(WidthUser.GetContent.String)
pos.Width = DesiredUserWidth * 2.5
pos.Height = DesiredUserWidth / OriginalWidth * OriginalHeight * 2.5
obj.SetFrame fr,true,dummy
msgbox("Changed Width to: " & pos.Width/2.5 & " " & Chr(13) & "Changed Height to: " & pos.Height/2.5)
End sub
阅读并从现在起仅在将对象指定给变量时使用
set OriginalWidth = pos.Width
==>
OriginalWidth = pos.Width
谢谢!我剩下的“套路”是正确的还是有更多的错误?我真的不明白为什么设置WidthUser=ActiveDocument.Variables(“vWidth”)是正确的,而不是设置OriginalWidth=pos.width?除了set的文档外,我在哪里可以了解更多关于差异的信息,以及何时使用什么?我真的是新手,所以我知道你是对的,但我还不太明白为什么。我在我原来的帖子中添加了我的新代码。我想知道是否可以将“Cint(widthsuser.GetContent.String)”更改为更小的值,因为如果我理解正确,我将首先将其转换为字符串,然后再转换为Int。我不能立即将其转换为Int吗?