单击其他单元格时设置单元格值

我试图执行简单的任务,使单元格A的值根据用户是否单击单元格B,C或D而更改。由于某些原因,下面的代码仅适用于第一个语句(在这种情况下,将单元格A的值设置为“低”)。 有人知道为什么当我点击B或C时它不起作用吗? 这个代码的任何帮助将是伟大的! 谢谢!

Sub Worksheet_SelectionChange(ByVal Target As Range) With Target If Not Intersect(.Cells, Columns(1)) Is Nothing Or .Count > 1 Then Exit Sub Sheets("Sheet1").Range("A" & ActiveCell.row).Value = "Low" If Not Intersect(.Cells, Columns(2)) Is Nothing Or .Count > 1 Then Exit Sub Sheets("Sheet1").Range("A" & ActiveCell.row).Value = "Medium" If Not Intersect(.Cells, Columns(3)) Is Nothing Or .Count > 1 Then Exit Sub Sheets("Sheet1").Range("A" & ActiveCell.row).Value = "High" End With End Sub 

如果第一条语句不是第一列,则第一条语句将导致该例程退出。 改变testing,你会有更多的成功

另外,当您正在查找特定列时,请使用select case语句对其进行检查,使其不那么拥挤

 Sub Worksheet_SelectionChange(ByVal Target As Range) With Target if .Count > 1 then exit sub Select Case .column Case 2 Sheets("Sheet1").Range("A" & ActiveCell.row).Value = "Low" Case 3 Sheets("Sheet1").Range("A" & ActiveCell.row).Value = "Medium" Case 4 Sheets("Sheet1").Range("A" & ActiveCell.row).Value = "High" end Select End With End Sub 

尝试这个:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rOut As Range With Target Set rOut = Me.Range("A" & .Row) If .Count = 1 Then If Not Intersect(.Cells, Columns(2)) Is Nothing Then rOut.Value = "Low" Else If Not Intersect(.Cells, Columns(3)) Is Nothing Then rOut.Value = "Medium" Else If Not Intersect(.Cells, Columns(4)) Is Nothing Then rOut.Value = "High" End If End If End If End If End With End Sub