本例使用了组合框和选项按钮跟踪和调整物品的状态,如下图所示。当在组合框中选择相应的物品后,下面的方框上方的文字会相应改变为该组合框物品名称,方框中的选项按钮根据该物品是否充足进行相应的选择。同时,在组合框中选择物品后,如果更改方框中选项按钮的状态,则下方库存状态列表中的文字也相应更改。单元格区域B11:C18为物品及相应的库存状态列表。 例如,在组合框中选择物品“潜水泵”,单元格B5会显示“潜水泵 充足还是不充足?”,因为在B11:C18中的潜水泵库存状态为充足,所以方框中名为“充足”的选项按钮被选中。此时,若将选项按钮更改为名为“不足”的选项按钮,那么B11:C18中潜水泵所对应的库存状态也会更改为“不足”。
 下面来看看这个示例是如何实现的。 第一步:在工作表中放置一个组合框、两个选项按钮,并调整格式如上图。在B11:C18区域录入数据,当然可以将数据录入到工作表的其他区域或其他工作表中,并且可以为区域命名,以方便调用和扩展。在本例中,为了演示方便,将数据区域与窗体控件放置在一起。 第二步:设置组合框,如下图所示。
第三步:设置选项按钮,将选项按钮的单元格链接为C8。 第四步:设置单元格B5,使之显示相关的提示信息。在单元格B5中输入公式: =INDEX(B12:B18,D3) & " 充足还是不充足?" 第五步:编写组合框和选项按钮相关联的代码。在VBE的标准模块中输入下面的代码: Sub GetStates() Dim ws As Worksheet Dim iWPNumber As Integer Dim sStates As String On Error Resume Next Set ws = ThisWorkbook.Worksheets("组合框示例") iWPNumber = ws.Range("D3") '获取组合框中当前所选物品的状态 sStates = ws.Range("B11").Offset(iWPNumber, 1) If sStates = "充足" Then '激活名为"充足"的选项按钮 ws.Range("C8").Value = 1 Else '激活名为"不足"的选项按钮 ws.Range("C8").Value = 2 End If Set ws = Nothing End Sub
Sub SetStates() Dim ws As Worksheet Dim iWPNumber As Integer On Error Resume Next Set ws = ThisWorkbook.Worksheets("组合框示例") iWPNumber = ws.Range("D3") If ws.Range("C8").Value = 1 Then '更新物品的状态为充足 ws.Range("B11").Offset(iWPNumber, 1).Value = "充足" Else '更新物品的状态为不足 ws.Range("B11").Offset(iWPNumber, 1).Value = "不足" End If Set ws = Nothing End Sub 其中,GetStates过程为组合框对应的宏代码,当组合框选项发生变化时更改对应的选项按钮。SetStates过程为选项按钮对应的宏代码,当组合框选项选定后,更改选项按钮设置时,相应更改库存列表中物品的库存状态。 第六步:为组合框指定宏为GetStates,为两个选项按钮指定宏为SetStates。
|