我知道如何基于一个单元格值将数据验证列表添加到单元格,但是当在一系列单元格中输入值时如何将数据验证列表添加到单元格?例如,在下面的图像单元格中,范围是D8:H19,而该范围是动态的(列不会更改,但是行数会增加)。
如果用户在任何单元格中输入一个值(以黄色D8:H19突出显示),则数据验证列表应添加到同一行的列A中。
有人可以帮助我编写代码吗?
这是图片
您可以创建一个工作表事件过程,该过程将在工作表中单元格或单元格块的内容更改为以下任何时候自动执行:
这是您可以使用的框架-将其粘贴在工作表代码模块中,并完成符合您需要的代码:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句