基于下拉菜单中的选择,文本框的VBA动态验证

时间:2012-10-25 20:43:12

标签: excel vba

所有。我在工作表中有一个名为 lookupMisc 的表,名为 periodNo(A) periodName(B),其中包含以下值。

A   B
1   09:00
2   10:00
3   11:00
4   12:00
5   13:00
6   14:00
7   15:00
8   16:00
9   17:00

此代码如下:

   For i = 1 To ws_misc.Range("periodNo").Rows.Count
        CombinedName = periodNo(i, 1) & " - " & periodName(i, 1)
        cbo_period.AddItem CombinedName
    Next i

和thsi生成:

enter image description here

现在您会注意到右侧有一个长度 txt_length )文本字段。基本上我试图基于该时期的条目创建一种动态验证形式。以下是案例:

If user selects  Then
1 - 09:00        Length can only accept values from 1-9
2 - 10:00        Length can only accept values from 1-8
3 - 11:00        Length can only accept values from 1-7
4 - 12:00        Length can only accept values from 1-6
5 - 13:00        Length can only accept values from 1-5
6 - 14:00        Length can only accept values from 1-4
7 - 15:00        Length can only accept values from 1-3
8 - 16:00        Length can only accept values from 1-2
9 - 17:00        Length can only accept values from 1-1

我将如何完成这项工作?

2 个答案:

答案 0 :(得分:1)

尝试类似:

if me.txt_length.value<1 or me.txt_length.value>10-clng(left(me.cbo_period.value,1)) then
    msgbox "Entry must be between 1 and " & 10-clng(left(me.cbo_period.value,1))
end if

答案 1 :(得分:1)

您可以将数据验证放在基于下拉列表中所选值的长度单元格中:

DataValidationExample1

DataValidationExample2

祝你好运。