Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 如何将循环中的交互值附加到字符串上?_Vbscript - Fatal编程技术网

Vbscript 如何将循环中的交互值附加到字符串上?

Vbscript 如何将循环中的交互值附加到字符串上?,vbscript,Vbscript,我不知道如何从每次循环迭代中获取值(例如a=1到100),并将其附加到用于每次迭代将执行的命令的字符串中 下面是我试图做的一个例子,这样如果我上面的解释有点混乱,我可以把它弄清楚一点。一些伪代码,因为我不完全熟悉VB代码语法: For a=1 to 100 **variable** = "M"+CStr(a); workspace.Designs.Sch1.PartList.**variable**.ParamSet.RAD.Set(4); Next 第一次通过变量是M1,然后是M2,M

我不知道如何从每次循环迭代中获取值(例如a=1到100),并将其附加到用于每次迭代将执行的命令的字符串中

下面是我试图做的一个例子,这样如果我上面的解释有点混乱,我可以把它弄清楚一点。一些伪代码,因为我不完全熟悉VB代码语法:

For a=1 to 100

**variable** = "M"+CStr(a);

workspace.Designs.Sch1.PartList.**variable**.ParamSet.RAD.Set(4);

Next
第一次通过变量是M1,然后是M2,M3,M4,如此类推,一直到M100。如果有什么不清楚的地方,请尽管问,我很乐意解释。

试试这个:

Dim a
Dim output

For a = 1 To 100
    If (Len(output) > 0) Then output = output & ", "
    output = output & "M" & a
    'execute your command here.
Next
试试这个:

Dim a
Dim output

For a = 1 To 100
    If (Len(output) > 0) Then output = output & ", "
    output = output & "M" & a
    'execute your command here.
Next

正如我在上面的评论中提到的,不能用字符串代替对象/变量名。您可以尝试使用
Execute()
函数,该函数类似于JavaScript等其他语言中的
eval()
Execute()
接受字符串表达式并将其作为一个或多个VBScript语句执行

For a = 1 To 100
    strCommand = "workspace.Designs.Sch1.PartList.M" & a & ".ParamSet.RAD.Set 4"
    Execute strCommand
Next

旁注:我删除了你的分号。VBScript不将它们用作线条结束符。我还删除了
4
周围的参数。这里也不需要它们。

正如我在上面的评论中提到的,不能用字符串代替对象/变量名。您可以尝试使用
Execute()
函数,该函数类似于JavaScript等其他语言中的
eval()
Execute()
接受字符串表达式并将其作为一个或多个VBScript语句执行

For a = 1 To 100
    strCommand = "workspace.Designs.Sch1.PartList.M" & a & ".ParamSet.RAD.Set 4"
    Execute strCommand
Next

旁注:我删除了你的分号。VBScript不将它们用作线条结束符。我还删除了
4
周围的参数。这里也不需要它们。

对于a=1到100:var=“M”&a:workspace.Designs.Sch1.PartList.var.ParamSet.RAD.Set(4):下一个
是您试图编写但无法工作的代码,因为您的变量是命令的一部分。你确定吗?如果是这样的话,那么您需要使用eval函数执行命令。看帮助,看我的答案。我唯一不清楚的是每次执行的命令所在的位置。它是否也在VBScript范围内可用?或者它是外部的(例如,命令行)?看起来您试图使用字符串作为对象/变量名的占位符,但您无法这样做
M1
PartList
的一个属性/对象,但您尝试使用字符串“M1”。
PartList
是否有一个collection/
Item
属性,允许您通过名称/字符串指定特定项?Bond,我认为这正是发生的情况。我正试图把一根绳子传给那个地方,这就是为什么我认为它不起作用的原因。我收到的错误是对象不支持此属性或方法。对于您的问题,“PartList是否具有允许您按名称/字符串指定特定项的集合/项属性?”,这就是我需要解决的问题。谢谢你把我引向正确的方向,我非常感激。使用CallByName似乎可以实现这一点,但我还没有找到正确的语法。
CallByName
是一个VB函数,但它在VBScript中不存在。请参见下面我的答案。
对于a=1到100:var=“M”&a:workspace.Designs.Sch1.PartList.var.ParamSet.RAD.Set(4):下一步是您试图编写但无法工作的代码,因为您的变量是命令的一部分。你确定吗?如果是这样的话,那么您需要使用eval函数执行命令。看帮助,看我的答案。我唯一不清楚的是每次执行的命令所在的位置。它是否也在VBScript范围内可用?或者它是外部的(例如,命令行)?看起来您试图使用字符串作为对象/变量名的占位符,但您无法这样做
M1
PartList
的一个属性/对象,但您尝试使用字符串“M1”。
PartList
是否有一个collection/
Item
属性,允许您通过名称/字符串指定特定项?Bond,我认为这正是发生的情况。我正试图把一根绳子传给那个地方,这就是为什么我认为它不起作用的原因。我收到的错误是对象不支持此属性或方法。对于您的问题,“PartList是否具有允许您按名称/字符串指定特定项的集合/项属性?”,这就是我需要解决的问题。谢谢你把我引向正确的方向,我非常感激。使用CallByName似乎可以实现这一点,但我还没有找到正确的语法。
CallByName
是一个VB函数,但它在VBScript中不存在。请看下面我的答案。我想我看到了你在试图做什么。我相信我的问题不在于实际形成变量,而在于我试图将输出传递到函数调用中。因此,如果我尝试workspace.Designs.Sch1.PartList.output.ParamSet.RAD.Set(4),它不喜欢输出,并且无法正确传递,因此我的命令无法工作:(那么,您试图传递给函数调用的是什么?是字符串,而不是您当前拥有的
4
?也感谢roryap提供的帮助和输入!我想我明白您试图在那里做什么了。我相信我的问题不在于实际形成变量,而在于我试图将输出传递给函数调用时。因此,如果我将尝试workspace.Designs.Sch1.PartList.output.ParamSet.RAD.Set(4),它不喜欢输出,并且无法正确传递,因此我的命令不起作用:(因此,您想传递给您的函数调用吗?代替当前代码中的“代码> 4”/代码>的字符串吗?谢谢您的RoyYAP的帮助和输入!请考虑用“VBScript语句”替换“VBScript表达式”。.@Ekkehard.Horner实际上,它是一个表达式。该表达式可以包含一个或多个语句。这很有效