先看看动态效果图:
数据输入完成后,只需点击“保存”按钮,系统就会自动将这些数据添加到另一张工作表中。同时,输入界面会被清空,以便于你进行下一次的数据输入。
要设置这种自动转存的功能其实非常简单。
你只需按以下步骤就能轻松实现,记得收藏起来,以便不时之需。
一、创界输入界面
1、要全选工作表,请点击工作表左上角的倒三角图标,然后将整个工作表的背景填充为你喜欢的颜色。在这里,我选择的颜色是:“白色,背景1,深色5%”。
2、接下来,点击“开发工具”-“插入”-“表单控件”-“分组框”,
然后在工作表中绘制一个分组框。
如果你没有找到“开发工具”选项卡,请右击开始菜单栏,选择“自定义功能区”,在常用命令中找到并勾选“开发工具”,这样“开发工具”选项卡就会出现在你的菜单栏中了。
3、现在,我们需要输入相关的人员信息字段:
(一)首先,设置行高:将第1行的行高设置为30,第2行的行高设置为8,然后按照这样的规律 (一行高一行低)继续设置剩余的行高。
(二)在C列中,我们需要输入以下字段:在奇数行里依次输入“姓名”、“性别”、“部门”、“精通语言”、“爱好”和“备注”。
(三)接下来,我们需要为这些字段添加对应的ActiveX控件。
(1)对于“姓名”字段,我们需要添加一个文本框控件。在工作表上绘制一个文本框控件,并调整其位置以适应字段。
然后,在控件的属性窗口中,将文本框的名称从“textbox1”更改为更为直观的“姓名”。
(2)对于备注字段的处理,它与姓名字段相似,都需要对应一个文本框控件,在添加完文本框控件后,我们应该将控件的名称从默认的(如“textbox1”)更改为更为直观的“备注”,以便在代码中能够轻松地识别它。
(3)对于性别字段,我们需要插入选项按钮控件。
在工作表上绘制两个选项按钮:
接下来,选中第一个选项按钮,并右击它以打开属性窗口。
在属性窗口中,我们可以将“Caption”属性修改为“男”,这样控件上显示的文字就变成了“男”。
同时,为了在后续的操作或代码中能够准确地识别这个控件,我们还应该将控件的“名称”属性从默认的(如“OptionButton1”)更改为“男”。
另外,为了保持界面的一致性,将“BackColor”属性设置为与按钮表面颜色相匹配的颜色。
对于另一个性别选项按钮,同样将“Caption”属性修改为“女”,并将“名称”属性更改为“女Button”,“BackColor”属性也设置为与按钮表面颜色相匹配。
(4)在部门字段处,插入一个列表框。
您可以直接在工作表的名称编辑框中将其名称更改为“部门”,或者在属性窗口中更改其名称,效果是相同的。
(5)对于爱好选项,使用复选框来进行选择。
首先插入复选框,然后根据需要复制粘贴以创建多个复选框。
与性别选项按钮类似,您需要更改每个复选框的“Caption”属性(例如,设置为具体的爱好名称)、“名称”属性(例如,设置为与该爱好对应的唯一名称)以及“BackColor”属性(设置为与按钮表面颜色相匹配)。
在完成所有控件的属性设置后,您可以使用Ctrl键选取全部控件,然后在“形状格式”菜单中选择“顶端对齐”和“横向分布”,以确保控件排列整齐。
(6)对于精通语言字段,插入一个列表框,并在名称编辑框中将其名称更改为“语言“
(7)最后一个控件是按钮控件
设置名称跟caption都为”保存“。
二、创建数据表
增加另一张工作表,用来存放输入的数据,格式根据你自己的需求设置。
三、输入代码
(1)在哪里编写代码
要在Visual Basic开发工具中编写代码,首先需要打开VBA编辑代码窗口。
(2)关于精通语言和部门的初始化
我们的目标是在工作簿打开时自动初始化部门数据和精通语言数据。为此,我们将使用Workbook_Open事件。
'以下代码都可以直接复制使用
Private Sub Workbook_Open()
'部门数据的初始化
With Sheets("录入")
.部门.Clear
.部门.AddItem "销售部"
.部门.AddItem "人事部"
.部门.AddItem "财务部"
.部门.AddItem "生产部"
.部门.AddItem "后勤部"
End With
'精通语言数据的初始化
With Sheets("录入")
.语言.Clear
.语言.AddItem "汉语"
.语言.AddItem "英语"
.语言.AddItem "法语"
.语言.AddItem "德语"
.语言.AddItem "日语"
End With
End Sub
这样部门跟语言的就会自动添加进去了。
另外,由于精通语言是多选的,所以需要在属性中进行设置。
请先进入开发工具的设计模式,然后选中需要设置的多选列表框,右击弹出属性窗口,
将MultiSelect属性设置为1 - fmMultiSelectExtended,这样就可以进行多选了。
(3)保存按钮的代码
在设计模式下,双击“保存”按钮
然后在代码编辑器中输入以下代码:
Private Sub 保存_Click()
Dim ole As Object
Dim ar, xm, xb, bm, yy, ah, bz
'(1)读取输入的数据
'姓名
xm = 姓名.Value
'性别
For Each ar In Array("男", "女")
Set ole = OLEObjects(ar).Object
If ole.Value Then xb = ar
Next
'部门
bm = 部门.Value
'精通语言
For i = 0 To 语言.ListCount - 1
If 语言.Selected(i) Then yy = yy & "," & 语言.List(i)
Next
yy = Mid(yy, 2, 99)
'爱好
For Each ar In Array("音乐", "体育", "跳舞", "游戏", "书法")
Set ole = OLEObjects(ar).Object
If ole.Value Then ah = ah & "," & ar
Next
ah = Mid(ah, 2, 99)
'备注
bz = 备注.Value
'(2)写入到数据表中
irow = Sheets("数据").Cells(Rows.Count, 1).End(xlUp).Row 1 '读取最后一行行数 1
Sheets("数据").Range("A" & irow).Resize(1, 6) = Array(xm, xb, bm, yy, ah, bz) '数据写入表中
Sheets("数据").Range("A" & irow).Resize(1, 6).Borders.LineStyle = 1 '增加数据的同时自动添加边框
'(3)录入表清空数据,方便下一次输入
姓名.Value = ""
部门.Value = ""
备注.Value = ""
'性别
For Each ar In Array("男", "女")
Set ole = OLEObjects(ar).Object
ole.Value = False
Next
'精通语言
For i = 0 To 语言.ListCount - 1
语言.Selected(i) = False
Next
'爱好
For Each ar In Array("音乐", "体育", "跳舞", "游戏", "书法")
Set ole = OLEObjects(ar).Object
ole.Value = False
Next
End Sub
按照以上步骤,您将能够轻松创建一个自动化的数据录入界面,并能将用户输入的数据自动转移到另一个工作表中保存。不妨立刻动手尝试,相信您会发现整个过程其实并不复杂!
评论 (0)