在上一章中,我们已经成功搭建了用户窗体的外观框架,就像建好了房子的骨架。
现在,我们要给它注入“灵魂”——编写VBA代码。请不用担心,我们将从最基础的逻辑讲起,一步步教你如何让窗体与工作表进行对话。
核心逻辑是这样的:当用户点击“数据录入”时,程序需要做三件事:
1. 拿数据:去文本框里把用户刚打的字“抓”过来。
2. 找位置:去工作表里找到最后一行有数据的地方,然后往下挪一格,找到那个“空位”。
3. 填进去:把抓来的数据,像放积木一样,稳稳地放进那个空位里。
接下来我们就用程序来和它对话:
Private Sub CommandButton1_Click() '声明变量 Dim ws As Worksheet Dim lastRow As Long Dim i As Integer Dim rng As Range Dim fillColor As Long Dim rng1 As Range '设置工作表 Set ws = ThisWorkbook.Sheets("Sheet4") '自动识别数据范围,最后的行数 lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row '自动识别数据范围,第一行空行的位置 lastRow = lastRow + 1 '将文本框的内容分布赋值给序号、名称、性别、分数、评级所在列的第一个空白行 ws.Cells(lastRow, 1).Value = TextBox1.Text ws.Cells(lastRow, 2).Value = TextBox2.Text ws.Cells(lastRow, 3).Value = TextBox3.Text ws.Cells(lastRow, 4).Value = TextBox5.Text ws.Cells(lastRow, 5).Value = TextBox4.Text '获取数据范围 Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, 5)) '获取除标题行以为的数据范围 Set rng1 = ws.Range(ws.Cells(2, 1), ws.Cells(lastRow, 5)) '定义填充颜色,RGB(173,216,230)为浅蓝色 fillColor = RGB(173, 216, 230) '取消数据范围边框显示 rng.Borders.LineStyle = xlNone '定义数据范围边框线显示属性 With rng.Borders .LineStyle = xlcontinous '边框线连续 .Weight = xlThin '边框线为细线 .ColorIndex = xlAutomatic '边框颜色默认 End With '定义除标题栏外的数据范围的数据格式 With rng1 .Interior.Color = fillColor '数据区域填充为浅蓝色 .HorizontalAlignment = xlCenter '数据水平居中 .VerticalAlignment = xlCenter '数据竖直居中 .WrapText = True '数据自动换行 End With TextBox1.Text = "" '录入后情况文本 TextBox2.Text = "" '录入后情况文本 TextBox3.Text = "" '录入后情况文本 TextBox4.Text = "" '录入后情况文本 TextBox5.Text = "" '录入后情况文本 '完成录入后显示“complete“ MsgBox "complete"End Sub
窗体做好了,怎么把它叫出来呢?很简单,在VBA编辑器里插入一个“模块”,写上两行代码
Sub show() UserForm1.Show End Sub



你会发现,原本枯燥的数据录入,因为这个小小的窗体,变得像操作APP一样流畅。你不再需要盯着密密麻麻的格子,不再需要担心填错位置,所有的数据都经过窗体的“过滤”和“整理”,自动归位。
这不仅仅是一个功能的实现,更是一种工作思维的升级。它让你从繁琐的机械劳动中解脱出来,去享受创造的乐趣。你不再只是Excel的使用者,更像是它的指挥官。这种掌控感,才是玩转VBA最大的魅力所在。
所以,别再犹豫了。动手试一试,给你的Excel装上这个“智能前台”,让数据录入变成一件轻松又有趣的事情吧!