Microsoft Lab
全部软件
Excel用户窗体(Userform)约 4 分钟

Userform and Ranges 用户表单接收范围

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


建立表单

  1. 打开 VBA 编辑器,插入一个 Userform
  2. 放一个 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:

  1. Userform and Ranges
只记在你的浏览器里,换设备不会同步。