使用用户表单中的字符串数组填充组合框

时间:2016-06-27 03:43:18

标签: vba excel-vba excel

我尝试使用组合框解决问题,我不希望列出的选项在每次执行宏时创建另一个double,如果AddItem属性仅用于填充组合框。该项目将在用户表单的下拉菜单中列出12个月,目标是让用户以打印预览模式显示该表(附带的工作表每个月都有一个表)。我写了几个月的字符串数组,然后告诉它用循环中的AddItem属性填充组合框。即:

    List<Animal> animals = new ArrayList<>();
    Animal a1 = new Animal(1L, "XYZ", "A2B");
    Animal a2 = new Animal(2L, "ABC", "IJK");
    animals.add(a1);
    animals.add(a2);
    List<String> strings = new ArrayList<>();
    for (Animal animal : animals) {
        strings.add(animal.toString());
    }
    Files.write(Paths.get("output.out"), strings, Charset.defaultCharset());

出于某种原因,我在AddItem行遇到错误,说VBA找不到指定的对象,即使指定了路径......如果代码是在ComboBox的例程下运行,或者同样的事情发生在一个单独的例程中测试。

我感谢你在这方面的帮助。

4 个答案:

答案 0 :(得分:1)

不需要一个阵列(虽然这可能不是导致错误的原因:

Dim m As Long, s As String

For m = 1 To 12
    s = "Print " & MonthName(((m + 2) Mod 12) + 1) & " Table"
    UserForm13.ComboBox1.AddItem s
Next m

答案 1 :(得分:0)

尝试罗宾斯的建议,因为这是最可能的解决方案,如果这是正确的,那么它抱怨的对象必须是数组。

以下内容应该与您可以测试的功能相同。

Uri uri = Uri.parse(URL); //Declare your url here.

VideoView mVideoView  = (VideoView)findViewById(R.id.videoview)
mVideoView.setMediaController(new MediaController(this));       
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();

如果在“使用UserForm13.ComboBox1”行中出现错误,则Robin是正确的,用户表单或组合框必须具有其他名称。

祝你好运

答案 2 :(得分:0)

如果您正在从Userform13运行ComboBox1_Change()事件,那么您将收到此错误

  

表格已经显示;无法以模态显示

除非您在Userform13的“属性”页面上将Userform13's ShowModal设置为false。

答案 3 :(得分:0)

如果您检查实际的用户形式和组合框名称,可以尝试:

Private Sub ComboBox1_Change()

Dim strMonth(1 To 12) As String

strMonth(1) = "Print April Table"
strMonth(2) = "Print May Table"
strMonth(3) = "Print June Table"
strMonth(4) = "Print July Table"
strMonth(5) = "Print August Table"
strMonth(6) = "Print September Table"
strMonth(7) = "Print October Table"
strMonth(8) = "Print November Table"
strMonth(9) = "Print December Table"
strMonth(10) = "Print January Table"
strMonth(11) = "Print February Table"
strMonth(12) = "Print March Table"

With UserForm13
    With .ComboBox1
        .Clear
        .List = strMonth
        .Style = fmStyleDropDownList
    End With
    .Show
End With
Unload UserForm13

End Sub