重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
建立表单
- 打开 VBA 编辑器,插入一个 Userform
- 放一个 Label(标签)、一个 RefEdit(范围选取框)控件、两个命令按钮
VBA 编辑器里 Userform 设计视图,工具箱里的 Label、RefEdit、CommandButton 控件已经拖放到表单上的布局
打开表单
在工作表按钮上写:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub表单打开时的初始化
Private Sub UserForm_Initialize()
Sheet1.Cells.Font.Color = vbBlack
UserForm1.RefEdit1.Text = Selection.Address
End Sub打开表单时,先把整张表的字体颜色重置成黑色(清掉上次的标记),并把 RefEdit 预填成使用者当前选中的范围地址。
Go 按钮:找出最小值并标红
Private Sub CommandButton1_Click()
Dim addr As String, rng, cell As Range, minimum As Double
addr = RefEdit1.Value
Set rng = Range(addr)
minimum = WorksheetFunction.Min(rng)
For Each cell In rng
If cell.Value = minimum Then cell.Font.Color = vbRed
Next cell
End Sub运行时的表单效果,RefEdit 框里显示选中的范围地址,点击 Go 后工作表上该范围里最小值的字体变红
Cancel 按钮:关闭表单
Private Sub CommandButton2_Click()
Unload Me
End Sub学完你会
常见错误
- 表单初始化时忘记重置颜色,上次标记的红色残留在画面上
- RefEdit1.Value 读到的是文字地址,忘记要用
Range(addr)转换成真正的 Range 对象才能操作 - 两个按钮都叫
CommandButton1_Click,需要确认对应的是各自控件的事件,不要弄混
Sources
Blog / Website: