Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel 根据第一个组合框中插入的编号生成组合框_Excel_Combobox_Logic_Vba - Fatal编程技术网

Excel 根据第一个组合框中插入的编号生成组合框

Excel 根据第一个组合框中插入的编号生成组合框,excel,combobox,logic,vba,Excel,Combobox,Logic,Vba,我在做一个userform,在其中一个字段中,比如说它的combobox1,用户被要求提供失败的数量,对于每个失败,他必须输入失败的类型,零件的数量,在另一个字段中输入返工的类型,为每个失败填充3个字段。我想知道的是,是否有可能根据失败的次数生成组合框。例如:如果用户在失败字段中输入3,则应显示9个组合框,以此类推 我还认为,另一种方法可能是让standards 3组合框在用户每次按下按钮时清除字段,并显示一个计数器,指示他正在填写的故障描述,但我也想知道如何将其集成到整个userform中,该

我在做一个userform,在其中一个字段中,比如说它的combobox1,用户被要求提供失败的数量,对于每个失败,他必须输入失败的类型,零件的数量,在另一个字段中输入返工的类型,为每个失败填充3个字段。我想知道的是,是否有可能根据失败的次数生成组合框。例如:如果用户在失败字段中输入3,则应显示9个组合框,以此类推

我还认为,另一种方法可能是让standards 3组合框在用户每次按下按钮时清除字段,并显示一个计数器,指示他正在填写的故障描述,但我也想知道如何将其集成到整个userform中,该userform已经有一个submit按钮


也许还有另外一个原因,我将非常感谢任何帮助

我对使用动态创建的tabstrips没有太多经验,但它们可能有助于创建您描述的布局。我建议在基本用户表单中,包括一个带有单个选项卡的tabstrip和一次失败所需的3个组合框/文本框。您可以将其保持不可见,直到combobox1具有值,如果需要,然后使用combobox中的数字在tabstrip上动态创建其他选项卡:

Private Sub ComboBox_Change()
    'To remove previous tabs if combobox changed
    For i = 1 To TabStrip1.Tabs.Count - 1
        TabStrip1.Tabs.Remove(i)
    Next i

    'Adding additional tabs to tabstrip
    For i = 1 To ComboBox.Value - 1
        TabStrip1.Tabs.Add
    Next i
End Sub
可以使用TabStrip1.Value属性标识当前选定的选项卡。我认为更改事件是由TabStrip1.Value changing排队的。 当选项卡条发生更改时,您必须手动清除所有值,或者重新填充以前填写但希望再次查看的值

但是,由于您将通过索引.value属性来确定您在哪个选项卡上,因此您可以创建一个二维数组,根据combobox1的值对其进行重拨以更正行/列,并使用选项卡索引存储combobox值,并在用户切换回现有选项卡时检索现有值

并且可能考虑锁定COMBOBOX1,所以值不能意外地改变。这可以通过将变量初始化为-1来实现,在他们开始向事件添加infor之后,将其设置为combobox值。或者不删除任何选项卡条选项卡,仅当数字大于现有计数时添加。如果你想让他们放入任何他们想要的值,也许考虑使用一个文本框?