Vba 当用户在单元格范围内输入值时,应添加数据验证
我知道如何根据一个单元格值向单元格添加数据验证列表,但当在单元格范围内输入值时,如何向单元格添加数据验证列表?例如,在下图中,单元格范围为D8:H19,该范围为动态范围(列不会改变,但行数会增加) 如果用户在任何单元格中输入值(以黄色D8:H19突出显示),则应在同一行a列中添加数据验证列表 有人能帮我修改一下密码吗Vba 当用户在单元格范围内输入值时,应添加数据验证,vba,excel,Vba,Excel,我知道如何根据一个单元格值向单元格添加数据验证列表,但当在单元格范围内输入值时,如何向单元格添加数据验证列表?例如,在下图中,单元格范围为D8:H19,该范围为动态范围(列不会改变,但行数会增加) 如果用户在任何单元格中输入值(以黄色D8:H19突出显示),则应在同一行a列中添加数据验证列表 有人能帮我修改一下密码吗 这是在StackExchange中多次询问的图像。试试这个。实际上在StackExchange中问了很多次。试试这个。实际上在StackExchange中问了很多次。试试这个。实际
这是在StackExchange中多次询问的图像。试试这个。实际上在StackExchange中问了很多次。试试这个。实际上在StackExchange中问了很多次。试试这个。实际上在StackExchange中问了很多次。试试这个。
验证。Add
方法用于使用vba验证数据。Add方法用于使用vba验证数据。Add方法用于使用vba验证数据。Add方法用于使用vba验证数据。Add方法用于使用vba验证数据。Add方法用于使用您可以创建的vba验证数据工作表事件过程,当工作表中的单元格或单元格块的内容更改为以下内容时,该过程将自动执行:
- 确定您的动态参考范围
- 查找正在更改的单元格或单元格块与参考范围之间的交点
- 如果这个交叉点实际上返回了一个范围,那么在这个范围内的每个单元格中循环并执行您的操作
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
您可以创建一个工作表事件过程,当工作表中的单元格或单元格块的内容更改为以下内容时,该过程将自动执行:
- 确定您的动态参考范围
- 查找正在更改的单元格或单元格块与参考范围之间的交点
- 如果这个交叉点实际上返回了一个范围,那么在这个范围内的每个单元格中循环并执行您的操作
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
您可以创建一个工作表事件过程,当工作表中的单元格或单元格块的内容更改为以下内容时,该过程将自动执行:
- 确定您的动态参考范围
- 查找正在更改的单元格或单元格块与参考范围之间的交点
- 如果这个交叉点实际上返回了一个范围,那么在这个范围内的每个单元格中循环并执行您的操作
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
您可以创建一个工作表事件过程,当工作表中的单元格或单元格块的内容更改为以下内容时,该过程将自动执行:
- 确定您的动态参考范围
- 查找正在更改的单元格或单元格块与参考范围之间的交点
- 如果这个交叉点实际上返回了一个范围,那么在这个范围内的每个单元格中循环并执行您的操作
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
非常感谢你。这对我有帮助。非常感谢。这对我有帮助。非常感谢。这对我有帮助。非常感谢。这对我有帮助。