如果我影响到ListBox的完整数组,例如使用ListBox1.List = [{1;2;3;4}]
,则Listbox的.List
项将保持其正确的类型(此处为数字),但是如果我使用ListBox1.AddItem 5
或{ {1}}可以将单个项目的类型自动更改为Listbox1.List(5) = 6
。
示例代码:
String
后来,在比较值时,我得到了错误的结果,因为数字不等于文本(Private Sub UserForm_Initialize()
ListBox1.List = [{1;2;3;4}]
ListBox1.AddItem 5
ListBox1.AddItem
ListBox1.List(5) = 6
End Sub
)。
是否有任何简便的方法(1)确保列表项的类型不转换为5 <>"5"
?
(1)我知道我可以明确地转换为String,但是我宁愿将值保留为数字,而不是将其保留在列表框中
答案 0 :(得分:0)
我猜想在使用AddItem
时这是不可能的。根据{{3}},第一个参数是字符串,因此您传递的所有内容都会转换为字符串。
最好的选择是收集数组中的所有项目,然后使用ListBox1.List
分配数组。否则您必须忍受以字符串形式存储的数字...
更新
我将页面混在一起-链接到“访问”页面是错误的。
无论如何,文档是很差的。它说“有效对象” ,但未定义含义。至少不可能添加object
-引发类型不匹配。
此外,文档指出返回了Variant
,但事实并非如此-当我尝试获取结果时,编译器会引发错误。
作为结论,我假设AddItem
将所有内容都转换为字符串(如果失败则抛出错误)。因此,我仍然假设您要建立一个数组并将其分配给List
(如果您想拥有实数)。