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

我目前正在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.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吗?