我尝试使用组合框解决问题,我不希望列出的选项在每次执行宏时创建另一个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的例程下运行,或者同样的事情发生在一个单独的例程中测试。
我感谢你在这方面的帮助。
答案 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