识别并填充列表框

时间:2011-12-31 18:26:59

标签: vba word-vba

对我来说这是一个谜语:填充列表框的语法是什么?但首先:你如何识别列表框?在许多论坛中,我读到:ListBox1.Additem ...但他们怎么知道它是'ListBox1'?

3 个答案:

答案 0 :(得分:2)

当您将ListBox控件添加到表单时,这是默认名称。 VB和VBA使用控件的 type 的名称自动命名新的或未命名的控件,后缀为整数标识符。

你的控制被称为完全无关紧要。示例代码的要点是演示一个概念。您应该将ListBox1替换为您的控件名称。

你应该肯定将你的控件命名为默认值之外的东西,因为你在这里观察它并不是很具描述性。

每个人都used to be recommended命名控件,遵循某种类型的准匈牙利表示法,其中3个字母的前缀表示控件的类型,后面是您的常规描述性名称。在过去的几年中,对于任何看起来像匈牙利符号的东西都有很大的反弹,但我认为它在命名GUI控件方面仍然非常有用,所以我仍然使用它。对于ListBox控件,我可以将其称为:lstCustomerslstItemsForSale。但它完全是可选的:再次,您选择命名控件的方式与代码的工作方式或应用程序的行为方式无关。

因此,要在VB 6和/或VBA中填充列表框,您需要使用以下代码,其中myListBoxListBox控件的名称:

' Add an item to the end of the list
myListBox.AddItem "Peaches"

' Insert an item at the top of the list
myListBox.AddItem "Apples", 0

' Remove the first item in the list
myListBox.RemoveItem 0

答案 1 :(得分:2)

ListBox1.AddItem用于加载单列ListBox(CodyGrey的回答涵盖了这一点)。

如果您使用多列ListBox(属性.ColumnCount> 1),则需要将数组加载到.List。以下代码段将3行加载到2列ListBox

Dim dat(0 To 2, 0 To 1) As Variant

dat(0, 0) = "A"
dat(0, 1) = "B"
dat(1, 0) = "C"
dat(1, 1) = "D"
dat(2, 0) = "E"
dat(2, 1) = "F"

ListBox1.List = dat

访问列表框:(这对于不同版本的Word会有所不同,这适用于2003年)

要访问ListBox属性:

  1. 显示“控件工具箱”工具栏
  2. 转到设计模式
  3. 单击该控件,然后在“控件工具箱”
  4. 上选择“属性”
  5. 现在,Name属性应该可见且可编辑
  6. 也可以设置其他属性,例如ColumnCount等

答案 2 :(得分:1)

在Access中使用VBA时,一次填充整个列表框的好方法是在ListBox是ValueList时使用RowSource属性。添加许多条目时,AddItem方法有点慢。

例如,要填写目录中的文件列表,您可以使用:

Dim src As String
Dim S as String

S = Dir(FullPathToCurrentDirectory & "\*.*")

While Len(S) <> 0
        src = src & """" & S & """;"
        S = Dir
Wend
If Len(src) = 0 Then src = """"";"
Me.lstFiles.RowSource = Left(src, Len(src) - 1) ' leave off the last ;