Excel提供了一些内建的控件,可以在EXCEL工作表中添加和设置,以便用户可以与数据进行交互。以下是一些常见的Excel控件:
命令按钮(Button):用于触发宏(Macro)或VBA代码
滚动条(Scrollbar):用于通过滑动来选择一个数值
复选框(Checkbox):用于选择或取消选择一个或多个选项
列表框(Listbox):用于从预定义的列表中选择一个或多个选项
下拉框(Dropdown):用于从下拉列表中选择一个选项
这些只是Excel中可用的一些控件,可以根据需求和使用情景选择合适的控件,并设置其属性和行为,以实现与用户的交互。
本文介绍【命令按钮】和【滚动条】的使用,EXCEL VBA表单控件有十几个,在表格中这两种控件用途较多。
直接向EXCEL表格加入控件操作如下图:
【命令按钮】和【滚动条】控件是实际项目开发中最常用的两个按钮,如果你已经有EXCEL表格的使用经验,表格中插入这两个控件后就可以通过编程来控制EXCEL表格。
一、命令按钮
【任务1】向A1:A9写入9个两位随机整数,并在A10给出平均值
这个任务看起来非常简单。
EXCEL VBA编程应该做EXCEL前端表格无法完成的任务,这里指的就是数据写入问题。
例如,我们可以在单元格A1中写等号开头的公式,如=SUM(B1:B9),来引用表格中的数据。这种操作是“get”而不能“set”,我们无法做到在单元格A1中改变其它单元格的值(或者说为其它单元格赋值),都是在某个单元格中定义非常复杂的公式,并将公式批量复制到其它区域。
EXCEL VBA代码不但能向单元格写入数据,还能调用不同“事件”完成非常复杂的任务,是EXCEL办公自动化必不可少的工具。
EXCEL VBA代码的任务分为“函数”和"事件"两大类:
"函数"将常用的任务写成代码块,调用时返回执行结果,有返回值;
"事件"根据特定任务写代码块,调用时执行特定操作,没有有返回值。
EXCEL前端表格函数都是系统自带的内置函数,自定义函数是用户根据需要自己编制的函数。
下面是为【按钮1】写的Sub"事件"代码,代码放入EXCEL VBA开发环境【模块1】中,鼠标点击命令按钮即可完成【任务1】。
Sub 按钮1_Click()
Dim i As Integer
Dim s As Double
s = 0
For i = 1 To 9
Sheet1.Cells(i, 1) = Application.WorksheetFunction.RandBetween(10, 99)
s = s Sheet1.Cells(i, 1)
Next i
Sheet1.Cells(10, 1) = s / 10
End Sub
这是根据【任务1】写的"函数"代码,代码同样放入EXCEL VBA开发环境【模块1】中,然后在EXCEL表格中调用。
Function getMean(rng As Range) As Double
Dim count As Integer
Dim sum As Double
count = 0
sum = 0
'遍历表格区域中的所有单元格,累加数值并计算单元格数量
For Each cell In rng
If IsNumeric(cell.Value) Then
sum = sum cell.Value
count = count 1
End If
Next cell
'计算平均值
getMean = sum / count
End Function
进入EXCEL VBA开发环境,将Sub"事件"代码和Function"函数"代码复制、粘贴到
图3:“事件”和“函数”代码被复制、粘贴到【模块1】中
在表格中用鼠标点击【命令按钮】,效果如下图: