实现下拉列表框显示数据
Excel制作下拉表框的4种方法
制作下拉表框有两种方法:一是使用数占有效性设置下拉列表框,其制作方法有两种。
二是使用开发工具中的窗体控件制作下拉列表框,其制作方法也有两种。
为了能使介绍了如指掌,这里所有采纳图片加文字说明介绍自己常用的四种制作方法。
考虑到制作一个页面过长,故分为两个页面。
一、使用数占有效性设置简单的下拉列表框假设我们要下表中设置“男 /女”复选其操作程序以下:在 Excel 工作表中,将鼠标放在需设置列表内容的单元格(上表性别下),选择工具栏中的数据 / 数据的有效性,出现以下对话框:按此设置,点确立即可。
鼠标走开此单元格无任何异样显示,如鼠标搁置在已设置列表的单元格上,就会出现一个下拉箭头,以下列图:鼠标对着下拉箭头,就会出现下拉菜单——男女选择男女,鼠标走开单元格,箭头消逝。
采纳向下拖的迅速复制方法,即可将所设置的格式拖到所需的地点,而后再挨次选择即可。
二、使用数占有效性设置调取数据库式数据的下拉列表框原用文字介绍制作下拉表框的方法:成立下拉列表框1 、视图 / 工具栏 / 窗体,选中组合框,鼠标变成十字形;2、在工作表上点击,出现组合框;3、右击复选框,点设置控件格式,弹出对话框;4、点控制选项卡,设置【数据源地区】为$A$ 4:$ A$ 10,5、设置单元格链接为“$ G$4”(下拉框地点),也能够鼠标点击选择此单元格;6、确立;7、点击下拉框, G4单元格即可显示相应的编号。
定制控制1、复制第四行数据字段到A122、在 A13单元格中输入 "=INDIRECT(ADDRESS(INDIRECT("G4")+4,COLUMN(A5)))"3、在 B13单元格中输入 "=INDIRECT(ADDRESS(INDIRECT("G4")+4,COLUMN(B5)))"4、采纳复制公式的方法将1月的公式复制到 4月;5、选择下拉列表框中的名单,即可显示相应数据。
设置EXCEL下拉列表框的3种方法---(技能提升篇)
Excel设置数据有效性实现单元格下拉菜单的3种方法一、直接输入:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据,譬如“1,2,3,4,5,6,7,8,9”(不包括双引号,分割符号“,”必须为半角模式)→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
二、引用同一工作表内的数据:如果同一工作表的某列就是下拉菜单想要的数据,譬如引用工作表Sheet1的B2:B5,B2:B5分别有以下数据:1、2、3、4,操作如下:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据“=$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
三、引用不同工作表内的数据(必须用到定义名称):如果不同工作表的某列就是下拉菜单想要的数据,譬如工作表Sheet1的A1单元格要引用工作表Sheet2的B2:B5区域,工作表Sheet2的B2:B5分别有以下数据:1、2、3、4,操作如下:1.定义名称:菜单栏→“插入”→“名称”→“定义”→弹出“定义名称”窗口,在“在当前工作薄中的名称”下面输入“DW”(可以自己随便明明)→“引用位置”下面输入“=Sheet2!$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“添加”后再按“确定”完成第一步。
2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入“=DW”,“DW”就是刚刚定义好的名称,按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
设置EXCEL下拉列表框的3种方法
Excel设置数据有效性实现单元格下拉菜单的3种方法一、直接输入:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据,譬如“1,2,3,4,5,6,7,8,9”(不包括双引号,分割符号“,”必须为半角模式)→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
二、引用同一工作表内的数据:如果同一工作表的某列就是下拉菜单想要的数据,譬如引用工作表Sheet1的B2:B5,B2:B5分别有以下数据:1、2、3、4,操作如下:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据“=$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
三、引用不同工作表内的数据(必须用到定义名称):如果不同工作表的某列就是下拉菜单想要的数据,譬如工作表Sheet1的A1单元格要引用工作表Sheet2的B2:B5区域,工作表Sheet2的B2:B5分别有以下数据:1、2、3、4,操作如下:1.定义名称:菜单栏→“插入”→“名称”→“定义”→弹出“定义名称”窗口,在“在当前工作薄中的名称”下面输入“DW”(可以自己随便明明)→“引用位置”下面输入“=Sheet2!$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“添加”后再按“确定”完成第一步。
2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入“=DW”,“DW”就是刚刚定义好的名称,按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
powerbuilder级联下拉式数据窗口的实现方法
powerbuilder级联下拉式数据窗口的实现方法PowerBuilder是一款功能强大的开发工具,它可以帮助开发人员快速构建各种应用程序。
其中,级联下拉式数据窗口是PowerBuilder中非常重要的一个功能,它可以让用户在选择一个下拉列表中的选项后,自动更新另一个下拉列表中的选项。
下面将介绍PowerBuilder级联下拉式数据窗口的实现方法。
一、创建数据窗口首先,我们需要创建一个数据窗口,用于显示级联下拉列表的数据。
在数据窗口中,我们需要添加两个下拉列表框,一个用于显示第一级数据,另一个用于显示第二级数据。
在下拉列表框的属性中,我们需要设置数据源和显示字段。
二、设置级联关系接下来,我们需要设置两个下拉列表框之间的级联关系。
在第一个下拉列表框的Clicked事件中,我们需要添加以下代码:dw_1.SetTransObject(SQLCA)dw_1.Retrieve()其中,dw_1是我们创建的数据窗口的名称,SQLCA是PowerBuilder 中的一个全局变量,用于执行数据库操作。
这段代码的作用是在第一个下拉列表框中选择一个选项后,自动更新第二个下拉列表框中的选项。
三、设置过滤条件最后,我们需要设置第二个下拉列表框的过滤条件,以便只显示与第一个下拉列表框中选择的选项相关的数据。
在第二个下拉列表框的Clicked事件中,我们需要添加以下代码:dw_2.SetTransObject(SQLCA)dw_2.SetFilter("field_name = '" +dw_1.GetItemString(dw_1.GetRow(), "field_name") + "'")dw_2.Retrieve()其中,dw_2是我们创建的数据窗口的名称,field_name是我们在数据窗口中设置的字段名称。
这段代码的作用是根据第一个下拉列表框中选择的选项,设置第二个下拉列表框的过滤条件,并更新第二个下拉列表框中的数据。
在Excel中制作下拉列表的几种方法
在Excel中制作下拉列表的几种方法下拉列表在Excel中的用途十分广泛。
在Excel中制作下拉列表可以通过数据有效性、使用窗体控件和VBA控件工具箱中的组合框来制作。
下面我们用一个具体的例子来进行说明(在文章结尾处可下载xls格式的示例文件)。
假如我们每个月都有一个工资表,其中每个员工的工资按照其出勤天数每个月都不相同。
我们需要制作一个“个人工资表”来查看每个人每个月的工资情况,这时就可以制作一个包含员工姓名下拉列表,在其中进行选择来查看指定员工每个月的工资情况。
方法一:使用数据有效性通过数据有效性可以在单元格中提供一个下拉箭头,单击下拉箭头会弹出下拉列表。
因为员工姓名都在每月的工资表中,而“个人工资表”中没有这些人员姓名,所以我们必需先定义名称,以便在“个人工资表”中设置数据有效性时进行引用。
定义名称的方法是单击菜单“插入→名称”,在定义名称对话框中进行定义,这里将“1月工资”表中的姓名区域B3:B14定义为“姓名”,如图。
1.假如下拉列表放在“个人工资表”的C1单元格,选择C1单元格,然后单击菜单“数据→有效性”,选择“设置”选项卡,在“有效性条件”区域中“允许”下方的下拉列表中选择“序列”。
2.在“来源”下方的文本框中输入“=姓名”。
单击“确定”。
3.在数据区C3:H14中用VLOOKUP函数对工资数据进行关联。
例如第3行为1月工资,可以在C3单元格中输入公式=VLOOKUP($C$1,'1月工资'!$B$3:$H$14,2,0)”在D3单元格中输入公式:=VLOOKUP($C$1,'1月工资'!$B$3:$H$14,3,0)在C4单元格中输入公式:=VLOOKUP($C$1,'2月工资'!$B$3:$H$14,2,0)其余单元格依此类推。
这样,只要在单击C1单元格右侧的下拉箭头选择员工姓名就可以查看其所有月份的工资情况。
方法二:用窗体控件1.在菜单栏上右击,在弹出的菜单中选择“窗体”,将弹出“窗体”浮动工具栏,单击“组合框”控件。
在PB 中 巧 用 下 拉 数 据 窗 口
在PB 中巧用下拉数据窗口---- PowerBuilder 作为目前比较流行的一种开发工具,有其独到之处,那就是数据窗口(DataWindow)。
可以说,数据窗口是PowerBuilder 的核心,在对数据库的开发过程中,无论是录入、查询、统计还是报表,都离不开数据窗口。
但是,除了数据窗口,PB 还提供了下拉数据窗口(DropDown DataWindow),下拉数据窗口的使用,使数据窗口更灵活,更方便,下面举例介绍在数据窗口中使用下拉数据窗口的一些技巧。
---- 在用数据窗口作数据录入时,经常用到代码录入,即对经常输入的某些值设置代码,录入时直接录入代码即可。
例如,有两个表,主表main_table 和代码表code_table,结构如下:main_table字段名类型长度描述Id integer 标识号Name char 8 姓名Sex char 4 性别City Varchar 30 城市Unit Varchar 40 单位---- 下面,详细讨论如何使用下拉数据窗口:一、静态设计下拉数据窗口---- 首先对主表和代码表设计两个数据窗口dw_main 和dw_code,其中dw_main 包括字段id,name,sex,city 和unit;dw_code 包括字段code 和data。
假设unit 字段有几个常用值可使用代码录入,则在设计dw_main 时,用鼠标右键点击字段unit,在下拉菜单中选择Properties...(属性),则系统会弹出unit 列的属性对话框,在其中选择Edit (编辑)项,并在Style(风格)下拉列表框中选择DropDownDW 项,然后在下面的Options(选项)框中作具体的选项配置:在DataWindow 下拉框中选择已设计好的代码数据窗口dw_code 作为下拉数据窗口;在DisplayColumn(显示列)下拉框中选择code 字段;在Data Column(数据列)下拉框中选择data 字段,这表示显示的是code 字段的内容,而实际存于表main_table 中的是data 字段的内容。
intouch中的组合框使用方法
intouch中的组合框使用方法组合框(Combo Box)是Intouch中常用的控件之一,用于在界面上显示一个下拉列表框,用户可以通过点击下拉箭头来选择列表中的项。
组合框的使用非常灵活,可以用来显示静态的选项列表,也可以用来显示动态获取的数据。
在Intouch中使用组合框非常简单,只需要添加一个组合框控件到界面上,然后设置其属性和事件即可。
下面我将介绍组合框的基本使用方法,以及一些常用的高级技巧。
1. 添加组合框控件首先,打开Intouch开发环境,在界面编辑器中找到需要添加组合框的页面,然后在工具栏中选择组合框控件并拖动到界面上。
2. 设置组合框属性选中新添加的组合框控件,然后在属性编辑器中可以设置组合框的各种属性,包括数据源、默认选项、字体样式、颜色等。
其中最重要的属性之一是数据源,它决定了组合框中显示的选项列表。
3. 设置组合框数据源组合框的数据源可以是静态的,也可以是动态获取的。
如果是静态的,可以直接在属性编辑器中设置选项列表,每个选项用逗号分隔。
如果是动态的,可以通过VBScript来获取数据,然后设置给组合框的数据源属性。
4. 处理组合框事件组合框有各种事件,比如选项改变事件、点击事件等。
在需要处理这些事件时,可以为组合框添加事件处理程序,然后在事件处理程序中编写相应的逻辑。
以上是组合框的基本使用方法,下面我将介绍一些常用的高级技巧:1. 动态获取数据源有时候需要根据实时数据来更新组合框的选项列表,这时可以通过定时器或者其他方式来定时获取数据并更新组合框的数据源。
2. 根据条件显示选项有时候需要根据条件来动态显示或隐藏某些选项,这时可以在组合框的数据源中设置条件,然后通过VBScript在显示时进行判断并更新数据源。
3. 绑定数据源有时候需要将组合框的选项列表与数据库或者其他数据源进行绑定,这时可以使用数据源控件来获取数据,并将数据源设置给组合框。
4. 样式定制有时候需要定制组合框的样式,比如更改字体、颜色、边框等,这时可以通过VBScript或者CSS来实现样式定制。
vb界面限定条件显示数据库表数据
vb界面限定条件显示数据库表数据VB界面限定条件显示数据库表数据一、引言在VB界面中,我们经常需要根据一定的条件来显示数据库表中的数据。
本文将介绍如何使用VB编程实现根据限定条件来显示数据库表数据的功能。
二、准备工作1. 安装并配置数据库:我们需要安装一个数据库管理系统,例如MySQL或SQL Server,并创建一个数据库。
在该数据库中创建一个表,用于存储我们要显示的数据。
2. 创建VB项目:打开Visual Studio,选择新建一个VB项目。
在项目中添加一个DataGridView控件和相关的文本框或下拉列表框等控件,用于输入限定条件。
3. 引用库:在VB项目中引用System.Data和System.Data.SqlClient两个命名空间,以便使用库进行数据库操作。
三、连接到数据库1. 创建连接字符串:在VB代码中定义一个连接字符串,用于连接到数据库。
连接字符串包含了数据库的信息,例如服务器地址、用户名、密码等。
2. 建立数据库连接:使用SqlConnection类创建一个新的数据库连接对象,并将之前定义的连接字符串作为参数传入。
调用Open方法打开连接。
四、查询数据1. 编写SQL语句:根据用户输入的限定条件,编写SQL语句来查询符合条件的数据。
可以使用SELECT语句,并通过WHERE子句指定限定条件。
2. 创建命令对象:使用SqlCommand类创建一个新的命令对象,并将之前建立的数据库连接对象作为参数传入。
将编写好的SQL语句赋值给命令对象的CommandText属性。
3. 执行查询:调用命令对象的ExecuteReader方法来执行查询,并将结果保存在一个DataReader对象中。
五、显示数据1. 绑定数据源:将DataReader对象作为DataGridView控件的数据源,通过调用DataGridView的DataSource属性进行绑定。
2. 显示数据:使用DataGridView控件自动根据绑定的数据源显示查询结果。
设置EXCEL下拉列表框的3种方法
Excel设置数据有效性实现单元格下拉菜单的3种方法一、直接输入:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据,譬如“1,2,3,4,5,6,7,8,9”(不包括双引号,分割符号“,”必须为半角模式)→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
二、引用同一工作表内的数据:如果同一工作表的某列就是下拉菜单想要的数据,譬如引用工作表Shee t1的B2:B5,B2:B5分别有以下数据:1、2、3、4,操作如下:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据“=$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
三、引用不同工作表内的数据(必须用到定义名称):如果不同工作表的某列就是下拉菜单想要的数据,譬如工作表S heet1的A1单元格要引用工作表She et2的B2:B5区域,工作表She et2的B2:B5分别有以下数据:1、2、3、4,操作如下:1.定义名称:菜单栏→“插入”→“名称”→“定义”→弹出“定义名称”窗口,在“在当前工作薄中的名称”下面输入“DW”(可以自己随便明明)→“引用位置”下面输入“=Sheet2!$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“添加”后再按“确定”完成第一步。
在Excel中制作下拉列表
在Excel中制作下拉列表方法汇总下拉列表在Excel中的用途十分广泛。
在Excel中制作下拉列表可以通过数据有效性、使用窗体控件和VBA控件工具箱中的组合框来制作。
下面我们用一个具体的例子来进行说明(在文章结尾处可下载xls格式的示例文件)。
假如我们每个月都有一个工资表,其中每个员工的工资按照其出勤天下拉列表在Excel中的用途十分广泛。
在Excel中制作下拉列表可以通过数据有效性、使用窗体控件和VBA控件工具箱中的组合框来制作。
下面我们用一个具体的例子来进行说明(在文章结尾处可下载xls格式的示例文件)。
假如我们每个月都有一个工资表,其中每个员工的工资按照其出勤天数每个月都不相同。
我们需要制作一个“个人工资表”来查看每个人每个月的工资情况,这时就可以制作一个包含员工姓名下拉列表,在其中进行选择来查看指定员工每个月的工资情况。
方法一:使用数据有效性通过数据有效性可以在单元格中提供一个下拉箭头,单击下拉箭头会弹出下拉列表。
因为员工姓名都在每月的工资表中,而“个人工资表”中没有这些人员姓名,所以我们必需先定义名称,以便在“个人工资表”中设置数据有效性时进行引用。
定义名称的方法是单击菜单“插入→名称”,在定义名称对话框中进行定义,这里将“1月工资”表中的姓名区域B3:B14定义为“姓名”,如图。
1.假如下拉列表放在“个人工资表”的C1单元格,选择C1单元格,然后单击菜单“数据→有效性”,选择“设置”选项卡,在“有效性条件”区域中“允许”下方的下拉列表中选择“序列”。
2.在“来源”下方的文本框中输入“=姓名”。
单击“确定”。
3.在数据区C3:H14中用VLOOKUP函数对工资数据进行关联。
例如第3行为1月工资,可以在C3单元格中输入公式=VLOOKUP($C$1,'1月工资'!$B$3:$H$14,2,0)”在D3单元格中输入公式:=VLOOKUP($C$1,'1月工资'!$B$3:$H$14,3,0)在C4单元格中输入公式:=VLOOKUP($C$1,'2月工资'!$B$3:$H$14,2,0)其余单元格依此类推。
在powerbuilder中使下拉列表框可以和数据关联 net 电脑资料
在powerbuilder中使下拉列表框可以和数据关联 net 电脑资料在从事使用powerbuilder进行数据库开发的过程中,常常碰到要使用列表框来选择数据,但是普通的下拉列表框并没有提供和数据相连接的方法,而使用数据窗口的子下拉列表框来代替又显得有些别扭,下面制作的下拉列表框。
一、翻开powerbuilder的"select user object"画笔,选择,在"new user object"中选择"Visual"类的"Standard"项并按下 , 在弹出来的"Select Standard Visual Type"对话框中选择列表中的"dropdownlistbox"项并按下。
接着参加一些实例变量,选择"Declare"菜单项的"Instance Variables.."参加变量的声明: datastore idsuser int ilrow 并按下。
我们要对新的对象进行一些限制,在对象的"constructor"事件中参加程序:sorted = false //这句非常必要reset()二. 把数据检索出来放到idsuser变量里选择菜单"Declare"项的"User Object Function",在弹出来的对话框中按下新建一个对象函数命名为:init参数有一个:sqlstr string返回值为整型:integer现在我们需要动态地创立datastore在init函数中写下://integer init(sqlstr string) 开始long llrowcountlong llrowstring lssqlstring errorsstring lsreturnidsuser = create datastore//根据sql语句产生数据窗口//sql语句有错误if len(errors) >0 thenmessagebox('错误', errors)return -1end if//根据语法动态创立数据窗口idsuser.create(lsreturn)idsuser.settransobject(sqlca)llrowcount = idsuser.retrieve()//无数据返回if llrowcount=0 thenreturn -1end if//把数据插入控件for llrow = 1 to llrowcountthis.additem(string(idsuser.Object.Data[llrow,1])) next//成功返回0return 0//integer init(sqlstr string) 结束现在下拉列表框已经能显示数据了,但是我们在选择数据的同时往往需要的不是它显示出来的值,比方显示的是人员姓名,而我们需要的是工号,难道再使用select语句把需要的数据检索出来吗?有了下面的程序,我们就不必头痛了,//any getdata() 开始any lareturnlong llrowif text = '' thenreturn ''end if//没有选择或没有检索到数据if idsuser.rowcount() = 0 or ilrow = 0 thenreturn ''end if//在缺省情况下返回第二列的数据lareturn = idsuser.Object.data[ilrow, 2]return lareturn//andy getdata() 结束现在还不能返回正确的数据,还需要一个函数setidx(idx int),程序如下://setidx(idx int) 开始ilrow = idx//setidx(idx int) 结束现在这个user object已经完成了,我们来做一下试验试一试。
如何用VBA实现单元格下拉框复选
如何用VBA实现单元格下拉框复选要使用VBA实现单元格下拉框复选,需要以下步骤:1. 打开Excel并进入开发者选项卡。
如果您没有开发者选项卡,请按照以下步骤启用它:单击“文件”,然后选择“选项”。
在“Excel选项”对话框中,选择“自定义功能区”,然后在“主选项卡”下方的“主功能区”列表中选中“开发人员”复选框。
单击“确定”以保存更改。
2. 单击开发者选项卡上的“Visual Basic”按钮,以打开Visual Basic Editor(VBE)。
3.在VBE中,选择“插入”菜单,然后选择“用户窗体”以插入一个用户窗体。
4.在用户窗体上,选择“工具箱”工具栏上的“组合框”工具。
然后,在用户窗体上绘制一个组合框。
5.右键单击组合框,并选择“属性”以打开属性窗口。
6. 在属性窗口中,找到“ListStyle”属性,并将其设置为“1 - 下拉列表框”。
这将使组合框显示为下拉列表框。
7. 在属性窗口中,找到“MultiSelect”属性,并将其设置为“2 -扩展模式”。
这将启用组合框的多选功能。
8.关闭属性窗口。
11. 在“Initialize”事件过程中,添加以下代码行:```vbaPrivate Sub UserForm_InitializeEnd Sub```上面的代码将为组合框添加一些选项。
您可以根据需要为组合框添加或删除选项。
15. 在“Close”事件过程中,添加以下代码行:```vbaPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)If CloseMode = vbFormControlMenu Then Cancel = TrueEnd Sub```上述代码将防止用户通过点击窗体的关闭按钮来关闭窗体。
17.在工作表中,选择一个单元格,然后打开“数据验证”对话框。
在“设置”选项卡上,选择“列表”作为“允许”选项。
数据有效性
技巧 1 在单元格创建下拉列表有许多新手在EXCEL 中第一次见到下图所示的下拉列表时,都以为是程序做的,当他们知道图中下拉列表只是一个普通的利用数据有效性完成的EXCEL 技巧时,他们会觉得很惊奇。
那末,现在我们一起学习一下,怎么利用数据有效性来做个下拉列表吧:第一步在一个连续的单元格区域输入列表中的项目,如图中E7:E11 有个商品名称的表第二步选中A2 单元格,单击“菜单”——“数据”——“有效性”,在“数据有效性”对话框的"设置"选项卡中,在“允许”下拉列表中选择“序列”项.第三步在"来源"框中输入“=$E$8:$E$11” (或者输入“=”号后,用鼠标选中E8:E11)第四步勾选"忽略空值"与"提供下拉箭头"复选框,如图所示第五步单击"确定"按钮,关闭"数据有效性"对话框. 这样,就能实现第一张图所示的效果了。
如果列表的内容较少,或者不方便在工作表中输入列表项目,也可以省略上述的第一步,然后将第三步的操作改为:直接在"来源"框中输入列表内容,项目之间以半角的逗号分隔.如图所示在普通情况下,数据的有效性中的序列来源,只能引用当前工作表中的单元格区域。
如果希翼能够引用其他工作表中的单元格区域,则必须先为单元格区域定义名称,然后在"来源" 框中输入名称.例如,将另一张工作表中的A2:A10 区域,名称定义为“SPMC”,然后在“数据有效性”的“来源”框中输入“=SPMC” 。
另类的批注当我们需要对表格中的项目进行特殊说明时,往往会使用 EXCEL 的批注功能。
给单元格做批注的方法,这里不多浪费时间。
而给大家介绍一下另类批注:使用批注多了,我们会发现 EXCEL 的批注也有不足之处 :一、批注框的大小尺寸会受到单元格行高变化的影响 ;二、批注框的默认情况下,是只显示标识符。
在DataGridView控件中加入ComboBox下拉列表框的实现
在DataGridView控件中加⼊ComboBox下拉列表框的实现 虽然在Visual Studio中 DataGridView控件的DataGridViewComboBoxColumn可以实现下拉列表框,但这样的列会在整列中都显⽰下拉列表框,不太美观,⽽且还要⽤代码实现数据绑定。
本⽂介绍⼀种只在当前编辑单元格中显⽰下拉列表框的⽅法,供⼤家参考。
⾸先新建⼀个Windows应⽤程序,将主窗体重命名为MainForm,在MainForm中加⼊⼀个DataGridView控件,命名为dgv_User。
如下图所⽰: 打开窗体代码窗⼝,在代码窗⼝中声明⼀个ComboBox的控件// 定义下拉列表框private ComboBox cmb_Temp = new ComboBox(); 我们要绑定的下拉列表框的功能是选择性别,添加如下绑定性别下拉列表框的⽅法///<summary>///绑定性别下拉列表框///</summary>private void BindSex(){DataTable dtSex = new DataTable();dtSex.Columns.Add("Value");dtSex.Columns.Add("Name");DataRow drSex;drSex = dtSex.NewRow();drSex[0] = "1";drSex[1] = "男";dtSex.Rows.Add(drSex);drSex = dtSex.NewRow();drSex[0] = "0";drSex[1] = "⼥";dtSex.Rows.Add(drSex);cmb_Temp.ValueMember = "Value";cmb_Temp.DisplayMember = "Name";cmb_Temp.DataSource = dtSex;cmb_Temp.DropDownStyle = ComboBoxStyle.DropDownList;} 通常情况下我们都是从数据库中获取数据表(或者数据集),然后绑定到DataGridView中的,这⾥我们为了避免连接数据库,⼿中构造⼀个数据库表,代码如下:private void BindData(){DataTable dtData = new DataTable();dtData.Columns.Add("ID");dtData.Columns.Add("Name");dtData.Columns.Add("Sex");DataRow drData;drData = dtData.NewRow();drData[0] = 1;drData[1] = "张三";drData[2] = "1";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 2;drData[1] = "李四";drData[2] = "1";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 3;drData[1] = "王五";drData[2] = "1";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 4;drData[1] = "⼩芳";drData[2] = "0";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 5;drData[1] = "⼩娟";drData[2] = "0";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 6;drData[1] = "赵六";drData[2] = "1";dtData.Rows.Add(drData);this.dgv_User.DataSource = dtData;} 为窗体加载事件添加如下⽅法,其具体功能有详细说明:private void MainForm_Load(object sender, EventArgs e){// 绑定性别下拉列表框BindSex();//绑定数据表BindData();// 设置下拉列表框不可见cmb_Temp.Visible = false;// 添加下拉列表框事件cmb_Temp.SelectedIndexChanged += new EventHandler(cmb_Temp_SelectedIndexChanged);// 将下拉列表框加⼊到DataGridView控件中this.dgv_User.Controls.Add(cmb_Temp);} 当⽤户选择的单元格移动到性别这⼀列时,我们要显⽰下拉列表框,添加如下事件private void dgv_User_CurrentCellChanged(object sender, EventArgs e){try{if (this.dgv_User.CurrentCell.ColumnIndex == 2){Rectangle rect = dgv_User.GetCellDisplayRectangle(dgv_User.CurrentCell.ColumnIndex, dgv_User.CurrentCell.RowIndex, false);string sexValue = dgv_User.CurrentCell.Value.ToString();if (sexValue == "1"){cmb_Temp.Text = "男";}else{cmb_Temp.Text = "⼥";}cmb_Temp.Left = rect.Left;cmb_Temp.Top = rect.Top;cmb_Temp.Width = rect.Width;cmb_Temp.Height = rect.Height;cmb_Temp.Visible = true;}else{cmb_Temp.Visible = false;}}catch{}} 当⽤户选择下拉列表框时改变DataGridView单元格的内容private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e){if (((ComboBox)sender).Text == "男"){dgv_User.CurrentCell.Value = "男";dgv_User.CurrentCell.Tag = "1";}else{dgv_User.CurrentCell.Value = "⼥";dgv_User.CurrentCell.Tag = "0";}} 当滚动DataGridView或者改变DataGridView列宽时将下拉列表框设为不可见private void dgv_User_Scroll(object sender, ScrollEventArgs e){this.cmb_Temp.Visible = false;}private void dgv_User_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e){this.cmb_Temp.Visible = false;} 绑定数据表后将性别列中的每⼀单元格的Value和Tag属性(Tag为值⽂本,Value为显⽰⽂本)private void dgv_User_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) {for (int i = 0; i < this.dgv_User.Rows.Count; i++){if (dgv_User.Rows[i].Cells[2].Value != null && dgv_User.Rows[i].Cells[2].ColumnIndex == 2){dgv_User.Rows[i].Cells[2].Tag = dgv_User.Rows[i].Cells[2].Value.ToString();if (dgv_User.Rows[i].Cells[2].Value.ToString() == "1"){dgv_User.Rows[i].Cells[2].Value = "男";}else if (dgv_User.Rows[i].Cells[2].Value.ToString() == "0"){dgv_User.Rows[i].Cells[2].Value = "⼥";}}}} 效果如下图所⽰: 完整的代码如下:using System;using System.Data;using System.Collections.Generic;using ponentModel;using System.Drawing;using System.Text;using System.Windows.Forms;namespace MyNameSpace{public partial class MainForm : Form{// 定义下拉列表框private ComboBox cmb_Temp = new ComboBox();public MainForm(){InitializeComponent();}///<summary>///绑定性别下拉列表框///</summary>private void BindSex(){DataTable dtSex = new DataTable();dtSex.Columns.Add("Value");dtSex.Columns.Add("Name");DataRow drSex;drSex = dtSex.NewRow();drSex[0] = "1";drSex[1] = "男";dtSex.Rows.Add(drSex);drSex = dtSex.NewRow();drSex[0] = "0";drSex[1] = "⼥";dtSex.Rows.Add(drSex);cmb_Temp.ValueMember = "Value";cmb_Temp.DisplayMember = "Name";cmb_Temp.DataSource = dtSex;cmb_Temp.DropDownStyle = ComboBoxStyle.DropDownList;}///<summary>///为避免连接数据库,这⾥⼿⼯构造数据表,实际应⽤中应从数据库中获取///</summary>private void BindData(){DataTable dtData = new DataTable();dtData.Columns.Add("ID");dtData.Columns.Add("Name");dtData.Columns.Add("Sex");DataRow drData;drData = dtData.NewRow();drData[0] = 1;drData[1] = "张三";drData[2] = "1";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 2;drData[1] = "李四";drData[2] = "1";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 3;drData[1] = "王五";drData[2] = "1";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 4;drData[1] = "⼩芳";drData[2] = "0";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 5;drData[1] = "⼩娟";drData[2] = "0";dtData.Rows.Add(drData);drData = dtData.NewRow();drData[0] = 6;drData[1] = "赵六";drData[2] = "1";dtData.Rows.Add(drData);this.dgv_User.DataSource = dtData;}private void MainForm_Load(object sender, EventArgs e){// 绑定性别下拉列表框BindSex();//绑定数据表BindData();// 设置下拉列表框不可见cmb_Temp.Visible = false;// 添加下拉列表框事件cmb_Temp.SelectedIndexChanged += new EventHandler(cmb_Temp_SelectedIndexChanged);// 将下拉列表框加⼊到DataGridView控件中this.dgv_User.Controls.Add(cmb_Temp);}// 当⽤户移动到性别这⼀列时单元格显⽰下拉列表框private void dgv_User_CurrentCellChanged(object sender, EventArgs e){try{if (this.dgv_User.CurrentCell.ColumnIndex == 2){Rectangle rect = dgv_User.GetCellDisplayRectangle(dgv_User.CurrentCell.ColumnIndex, dgv_User.CurrentCell.RowIn dex, false);string sexValue = dgv_User.CurrentCell.Value.ToString();if (sexValue == "1"){cmb_Temp.Text = "男";}else{cmb_Temp.Text = "⼥";}cmb_Temp.Left = rect.Left;cmb_Temp.Top = rect.Top;cmb_Temp.Width = rect.Width;cmb_Temp.Height = rect.Height;cmb_Temp.Visible = true;}else{cmb_Temp.Visible = false;}}catch{}}// 当⽤户选择下拉列表框时改变DataGridView单元格的内容private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e){if (((ComboBox)sender).Text == "男"){dgv_User.CurrentCell.Value = "男";dgv_User.CurrentCell.Tag = "1";}else{dgv_User.CurrentCell.Value = "⼥";dgv_User.CurrentCell.Tag = "0";}}// 滚动DataGridView时将下拉列表框设为不可见private void dgv_User_Scroll(object sender, ScrollEventArgs e){this.cmb_Temp.Visible = false;}// 改变DataGridView列宽时将下拉列表框设为不可见private void dgv_User_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e){this.cmb_Temp.Visible = false;}// 绑定数据表后将性别列中的每⼀单元格的Value和Tag属性(Tag为值⽂本,Value为显⽰⽂本)private void dgv_User_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) {for (int i = 0; i < this.dgv_User.Rows.Count; i++){if (dgv_User.Rows[i].Cells[2].Value != null && dgv_User.Rows[i].Cells[2].ColumnIndex == 2){dgv_User.Rows[i].Cells[2].Tag = dgv_User.Rows[i].Cells[2].Value.ToString();if (dgv_User.Rows[i].Cells[2].Value.ToString() == "1"){dgv_User.Rows[i].Cells[2].Value = "男";}else if (dgv_User.Rows[i].Cells[2].Value.ToString() == "0"){dgv_User.Rows[i].Cells[2].Value = "⼥";}}}}}} ⽂章很长,希望能给您带来帮助。
Excel中制作自动缩小选择范围的下拉列表
Excel中制作⾃动缩⼩选择范围的下拉列表在《Excel中制作下拉列表》⽂章中,介绍了利⽤Excel数据有效性当中的序列功能,制作下拉列表的⽅法,包括如何制作多级级联的下拉列表。
有了下拉列表,可以从下拉列表中选择项⽬,这样可以提⾼输⼊的准确性和便利性。
当选择项⾮常多时,下拉列表会⾮常长,选择浏览时也会⾮常费劲。
基于此,可以考虑对下拉列表进⾏智能化改造,改造后的下拉列表可以根据单元格⾥输⼊的字符,在下拉列表中⾃动筛选出仅包含以这些字符开头的项,缩⼩下拉列表中的选择范围,使选择更精准、更⽅便。
如何制作这种可根据输⼊内容⾃动缩⼩选择范围的下拉列表呢?理解透下拉列表制作原理,熟练掌握Excel公式与函数的使⽤,其实也⾮常简单,基本思路如下:[1] 在某列中输⼊下拉列表数据源原始数据;[2] 将数据源原始数据按升序或降序排序;[3] 利⽤offset、match和countif等函数配合,⽣成可根据输⼊内容⾃动缩⼩范围的数据源,并设置为下拉列表的数据源;接下来就具体介绍制作⽅法:[1] 原始数据源准备输⼊上图所⽰的数据,按照B列的员⼯编号按升序排序,排序⽅法:⾸先,选中上述数据区域,利⽤“数据→排序”菜单或是“⼯具”栏上的升序按钮进⾏排序。
排序以后,相同字符开头的字符串将分布在连续单元格中,便于创建数据有效性的引⽤序列。
[2] 利⽤数据有效性⽣成下拉列表选中需要设置下拉菜单的单元格G2,选择“数据→有效性”,在弹出的数据有效性对话框中,选择“设置”选项卡,在“有效性条件”的“允许”处选择“序列”,在“来源”中使⽤以下公式:=Offset($B$1,Match(G2&'*',$B:$B,0)-1,,Countif($B:$B,G2&'*'))其中B列是之前排过序的数据源所在列数据源公式说明:Match函数的作⽤:返回G2单元格输⼊字符串开头的第⼀个选择项⾏号6,其中“*”是通配符可以表⽰⼀个或是多个字符;Countif函数的作⽤:返回G2单元格输⼊字符串开头的选择项个数3;数据源公式的计算:=Offset($B$1,6-1,,3),相当于以B1单元格向下偏移5⾏(B6单元格),以此单元格起始的3⾏单元格区域为引⽤范围;数据源公式的作⽤:在B列数据源中提取以G2单元格当中字符开始的所有选项。
用VBA代码轻松控制下拉列表
用VBA代码轻松控制下拉列表展开全文本技巧的目的:掌握创建数据有效性,判断是否存在数据有效性,根据当前选择和数据创建动态数据有效性。
•如下图的动态数据有效性:••1. 使用代码助手•代码助手下载地址/blog/archives/11297•使用代码助手,输入中文:数据有效性+ 空格,可以弹出选择框,选择需要的代码,实现代码的快速输入。
••代码助手可以随时收录需要的代码,方便下次使用。
2. 创建数据有效性的方法•通过录制宏可以得到基础代码:••注释:•Validation: 数据有效性•Delete: 删除•Add: 添加数据有效性验证•Type必选有效性验证类型:•xlValidateCustom:必需有 Formula1: 必须有一个表达式,忽略Formula2。
数据项有效时 True,数据项无效时 False•xlInputOnly: 使用 AlertStyle、Formula1 或 Formula2。
•xlValidateList: 必需有Formula1: 必须包含以逗号分隔的值列表,或对该列表的工作表引用。
忽略 Formula2•xlValidateWholeNumber、xlValidateDate、xlValidateDecimal、xlValidateTextLength 或 xlValidateTime •必须指定 Formula1 或 Formula2 之一,或两者均指定。
•AlertStyle可选有效性验证警告的样式。
•xlValidAlertInformation:信息图标为标题的样式•xlValidAlertStop:停止图标为标题的样式•xlValidAlertWarning:警告图标为标题的样式•Operator可选数据有效性验证运算符••Formula1可选数据有效性验证等式中的第一部分。
•Formula2可选当 Operator 为 xlBetween 或 xlNotBetween 时,数据有效性验证等式的第二部分(其他情况下,此参数被忽略)。
layui学习——数据表格嵌套下拉列表,并实现动态更新
layui学习——数据表格嵌套下拉列表,并实现动态更新 项⽬中有些字段的数据为固定的⼏个值,这些字段在数据表格中显⽰为汉字,但在数据库中以数字形式存储,例如:仓库属性(0:普通仓/1:检验仓/2:报废仓),要对这些字段进⾏数据表格⾏内编辑有些⿇烦。
因此,在数据表格中嵌套下拉列表是⼀个⽐较好的⽅案。
效果展⽰:步骤1:创建数据表格嵌套下拉列表样式 使⽤layui的template功能,先创建⼀个下拉列表:<script type="text/html" id="WHAttr"><select lay-filter='table' lay-verify=''><option value="0">普通仓</option><option value="1">检验仓</option><option value="2">报废仓</option></select></script> 以仓库属性字段为例。
我在项⽬中使⽤的是⾃动渲染的⽅式渲染表格的,因此需要在仓库属性的th标签中加⼊lay-data属性:<th lay-data="{field:'WHAttr',templet:'#WHAttr'}">仓库属性</th> 这样就在数据表格中嵌套⼀个下拉列表了,但样式好像不对,看起来怪怪的,下拉框与单元格⼤⼩不⼀致,下拉框也被遮挡了。
于是就要修改样式了:<style>/*使下拉列表框不被遮挡*/.layui-table-cell {overflow: visible !important;}/*使列表框与表格单元格重合*/td .layui-form-select {margin-top: -10px;margin-left: -15px;margin-right: -15px;}</style> 到这⼀步,表格样式就做好了。
在PB中巧用下拉数据窗口
在PB中巧用下拉数据窗口PowerPB提供了下拉数据窗口(DropDown DataWindow),使数据窗口更灵活、更方便。
在用数据窗口进行数据录入时,经常要用到代码录入,即对经常输入的某些值设置代码,录入时直接录入代码即可。
例如,有两个表,主表main_table和代码表code_table,录入时主表中需要代码表中的数据,但不允许录入不在代码表中的数据。
下面介绍如何使用下拉数据窗口实现上述功能。
静态设计下拉数据窗口首先对主表和代码表设计两个数据窗口dw_main和dw_code,其中dw_main包括字段id、na me、sex、city和unit;dw_code包括字段code和data。
假设unit字段有几个常用值可使用代码录入,则在设计dw_main时,用鼠标右键点击字段unit,在下拉菜单中选择Properties...(属性),则系统会弹出unit列的属性对话框;在其中选择Edit(编辑)项,并在Style(风格)下拉列表框中选择DropDownDW项;然后在下面的Options(选项)框中作具体的选项配置:在DataWindow下拉框中选择已设计好的代码数据窗口dw_code作为下拉数据窗口;在DisplayColumn(显示列)下拉框中选择code字段;在Data Column(数据列)下拉框中选择data字段 ,这表示显示的是code 字段的内容,而实际存于表main_table中的是data字段的内容。
至此,数据窗口设计完毕。
设计完数据窗口后,需要建立一个数据录入的窗口(window),名字为w_input;在窗口w_inpu t上建立一个数据窗口的控件dw_1,其属性DataWindow Object Name设为dw_main,并在w_inpu t的open事件中写入下列语句:dw_1.SetTransObject(SQLCA)dw_1.Retrieve()这样,在执行此窗口时,在unit字段上就会出现一个下拉列表框,列出了表code_table中所有的内容,用户可以用鼠标选择录入。