如何给列表框或组合框添加单列或者多列项目

网站名称: Excel技巧网 | Excel 2010新领地 主题状态: 本帖已收录 ET技术文库 欢迎指正![理由] 站内采编: 素材源帖 由本站会员 pan267 提供 署名作者: 水星钓鱼 版权声明: 版权所有 非作者本人转载须经许可并注明作者和出处 本文来自: 引用作品: 适用版本: 2007  语言环境: 简体中文 学习方法: 掌握Excel技巧的关键是动手操作 | 下载 ≠ 知识

本帖最后由 水星钓鱼 于 2009-12-7 19:48 编辑

Q:如何给列表框或组合框添加单列或者多列项目?

A:由于给列表框和组合框添加项目的方法是一样的。所以接下来都以列表框为例,且假设用户窗体上有一个列表框控件ListBox1。

附件如下

对于单列的列表框,向一个空的列表框添加项目可以使用列表框的AddItem方法。

如下所示:

Private Sub UserForm_Initialize()

With Me.ListBox1

.AddItem = "a"

.AddItem = "b"

.AddItem = "c"

End With

End Sub

复制代码

使用Additem方法只能一个元素一个元素的添加,利用它的第二个参数还可以灵活的指定将要添加的元素的位置。

如果想要一次性添加多个元素,可以使用列表框的List属性。

如以下代码也是向列表框添加a,b,c元素: Private Sub UserForm_Initialize()

With Me.ListBox1

.List = Array("a", "b", "c")

End With

End Sub

复制代码

可以把List属性的数据类型看作是Variant类型。当列表框中无项目时,List属性值为Null,一旦列表框中有了项目,它就是一个以行数为第一维,列数为第二维的二维数组。

对于想要设置显示为多列的列表框,首先要设置列表框的ColumnCount属性为想要显示的列数。(如果不设置该属性,将不能显示多列数据)

如果再用AddItem方法给列表框添加项目的话,会出现怎样的情况呢?

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.AddItem "A"

.AddItem "B"

'检查列表框第2列第1行的元素

MsgBox VarType(.List(0, 1)) = vbNull

End With

End Sub

复制代码

运行代码可以发现,用AddItem方法给多列的列表框赋值时,只能赋值给第一列,其余列都是Null值。此时可以使用List属性来改变其余列的元素。

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.AddItem "A"

.AddItem "B"

.List(0, 1) = "C"

.List(1, 1) = "D"

End With

End Sub

复制代码

当然也可以一次性将一个二维数组赋值给列表框。

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.List = Application.Evaluate("{""A"",""C"";""B"",""D""}")

End With

End Sub

复制代码

这里容易犯的错误就是直接用list属性来为列表框的某行某列赋值。

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.List(0, 0) = 1

End With

End Sub

复制代码

这是错误的,因为当要指定具体的某个行列数时,前提是要这个行列已经存在。事实上,在给List(0, 0)赋值前,它是不存在的。引用了不存在的元素将导致错误。

网站名称: Excel技巧网 | Excel 2010新领地 主题状态: 本帖已收录 ET技术文库 欢迎指正![理由] 站内采编: 素材源帖 由本站会员 pan267 提供 署名作者: 水星钓鱼 版权声明: 版权所有 非作者本人转载须经许可并注明作者和出处 本文来自: 引用作品: 适用版本: 2007  语言环境: 简体中文 学习方法: 掌握Excel技巧的关键是动手操作 | 下载 ≠ 知识

本帖最后由 水星钓鱼 于 2009-12-7 19:48 编辑

Q:如何给列表框或组合框添加单列或者多列项目?

A:由于给列表框和组合框添加项目的方法是一样的。所以接下来都以列表框为例,且假设用户窗体上有一个列表框控件ListBox1。

附件如下

对于单列的列表框,向一个空的列表框添加项目可以使用列表框的AddItem方法。

如下所示:

Private Sub UserForm_Initialize()

With Me.ListBox1

.AddItem = "a"

.AddItem = "b"

.AddItem = "c"

End With

End Sub

复制代码

使用Additem方法只能一个元素一个元素的添加,利用它的第二个参数还可以灵活的指定将要添加的元素的位置。

如果想要一次性添加多个元素,可以使用列表框的List属性。

如以下代码也是向列表框添加a,b,c元素: Private Sub UserForm_Initialize()

With Me.ListBox1

.List = Array("a", "b", "c")

End With

End Sub

复制代码

可以把List属性的数据类型看作是Variant类型。当列表框中无项目时,List属性值为Null,一旦列表框中有了项目,它就是一个以行数为第一维,列数为第二维的二维数组。

对于想要设置显示为多列的列表框,首先要设置列表框的ColumnCount属性为想要显示的列数。(如果不设置该属性,将不能显示多列数据)

如果再用AddItem方法给列表框添加项目的话,会出现怎样的情况呢?

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.AddItem "A"

.AddItem "B"

'检查列表框第2列第1行的元素

MsgBox VarType(.List(0, 1)) = vbNull

End With

End Sub

复制代码

运行代码可以发现,用AddItem方法给多列的列表框赋值时,只能赋值给第一列,其余列都是Null值。此时可以使用List属性来改变其余列的元素。

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.AddItem "A"

.AddItem "B"

.List(0, 1) = "C"

.List(1, 1) = "D"

End With

End Sub

复制代码

当然也可以一次性将一个二维数组赋值给列表框。

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.List = Application.Evaluate("{""A"",""C"";""B"",""D""}")

End With

End Sub

复制代码

这里容易犯的错误就是直接用list属性来为列表框的某行某列赋值。

如下所示: Private Sub UserForm_Initialize()

With Me.ListBox1

.ColumnCount = 2

.List(0, 0) = 1

End With

End Sub

复制代码

这是错误的,因为当要指定具体的某个行列数时,前提是要这个行列已经存在。事实上,在给List(0, 0)赋值前,它是不存在的。引用了不存在的元素将导致错误。


相关内容

  • Word表格制作技巧大全(新手必备)
  • Word 表格技巧大全 一, 文字巧妙转换成表格 通常大家制作表格时,都是采用表格和边框工具来绘制表格,或者利用"表格→插入→表格"命令来定制表格,请问如已输入了文字,则有没有办法让文字快速产生表格呢? 答:有,可以用Word 提供的表格与文字之间的相互转换功能完成.具体方法是这 ...

  • DedeCMS二次开发手册
  • DedeCMS V5.7二次开发手册 一.模板篇 1.1.主要模板文件与功能说明 DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设 ...

  • 上机实验5 数据完整性管理2008
  • 上机实验5 数据完整性管理 5.1 实验目的 1.理解数据库完整性约束的概念和原理: 2.掌握声明型数据完整性和过程型数据完整性的实现方法: 3.通过练习正确理解触发器的作用,类别,如何产生作用: 4.通过练习熟悉创建触发器的语句. 5.2 实验练习预备知识点 5.2.1 完整性的概念 数据完整性( ...

  • 手术影像管理系统
  • 手术影像管理系统 手术影像管理系统,通过摄像装置获取手术时的影像,对图片进行采集,测量,录像等.可打印检查. 检测.信息管理等各种类型自定义报告.实现对图像,病人信息资料的存储,管理,查询,统计等,通过 本系统可大大手术影像的管理能力. ○ 软件操作简洁,界面清新易使用. ○ 软件具有超简洁界面.超 ...

  • 液基细胞检测报告系统
  • 测系统.液基图文报告软件,连接医用显微检测设备,获取其影像.图像信息,实现影像信息在工作站 端的同步显示,从而进行图像采集,形成图文诊断报告,实现病人的文字.图像.影像资料的管理及分 析.统计等功能.随着液基薄层细胞检测技术在国内日益广泛的应用推广,广大液基设备及试剂的生产 商,也在提供着更优秀的液 ...

  • 数据透视图的使用方法
  • 数据透视表的用法 数据透视表的用法 . .......................................................................................................................... 1 1:什么叫 ...

  • 编制工程造价工作流程
  • 编制工程造价工作流程 四个文件 十大步骤 编制任何一份公路工程造价,都需要"四个文件.十大步骤",这里先初步介绍一下这四个文件和十大步骤组成的流程图 建立顺序 一 二 三 四 文件名称 定额文件 费率文件 单价文件 单项工程文件 作用 确定配套定额(包括补充定额) 确定项目的综合 ...

  • 如何使用SQLServer2000全文检索 -- c#天堂
  • 如何使用SQL Server 2000全文检索 SQL Server 2000全文检索 一.如何在SQL中启用全文检索功能 1.证全文检索服务是否安装 通过储存过程FULLTEXTSERVICEPROPERTY(返回有关全文服务级别属性的信息)来验证搜索服务(全文组件)是否安装.如Select fu ...

  • 从零开始学做专题
  • 从零开始学做专题 原帖:http://bbs.bianews.com/thread-43578-1-1.html 本来想了一大段的前言来解释写本文的目的,后来觉得太浪费大家时间,删掉了.先说说我对网编在网页设计制作这一块技能上的理解吧(如果大家有什么不同看法欢迎提出,我会尽力去完善这些教程).网编日 ...