我知道如何根据一个单元格值向单元格添加数据验证列表,但是如果在一系列单元格中输入值,如何将数据验证列表添加到单元格?例如,在下面的图像中,单元格范围是 D8:H19 ,此范围是动态的(列不会更改,但行数会增加)。
如果用户在任何单元格中输入值(以黄色D8:H19突出显示),则应在同一行A列中添加数据验证列表。
有人可以帮我处理代码吗?
这是图片
答案 0 :(得分:1)
实际上在StackExchange中多次被问到。试试这个Dynamic range。
答案 1 :(得分:1)
Validation.Add
方法用于使用vba验证数据
答案 2 :(得分:1)
您可以创建一个工作表事件过程,该过程会在工作表中将单元格或单元格块的内容更改为以下时自动执行:
这是一个您可以使用的框架 - 将其粘贴在工作表代码模块中,并使用满足您需求的代码完成:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngInput As Range
Dim rngTotal As Range
Dim rngIntersect As Range
Dim lgInputLastRowNum As Long
Set rngTotal = Range("A:A").Find(what:="Total", LookAt:=xlPart, MatchCase:=False)
If rngTotal Is Nothing Then
MsgBox "No TOTAL found. Exit Sub"
Exit Sub
End If
lgInputLastRowNum = rngTotal.row - 1
Set rngInput = Range("D8:H" & lgInputLastRowNum)
Set rngIntersect = Intersect(Target, rngInput)
If Not rngIntersect Is Nothing Then
For each cell in rngIntersect
'Do your thing here
'To select the cell in column A on the same row as your cell
'do Range("A" & cell.row)
Next cell
End If
End Sub