vba - 在单击其他单元格时设置单元格值

标签 vba excel

我正在尝试执行简单的任务,即根据用户单击单元格 B、C 还是 D 来更改单元格 A 的值。由于某种原因,下面的代码仅适用于第一个 with 语句(在这种情况下,这会将单元格 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

最佳答案

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

此外,当您正在查找特定列时,请使用 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

关于vba - 在单击其他单元格时设置单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533338/

相关文章:

c# - 如何将 C#.net 字典传递给 VBA

vba - 允许在一个打开的工作簿中使用 UDF,但使其在另一工作簿中不可见/不可用/不可访问

vba - 在 VBA 中打开超链接

excel - 如何将日期变量与给定时间进行比较?

mysql - VBA 与 MySQL 的连接问题 - 在宏顶部连接,但不在底部

excel - 无法获取范围类的 FindNext 属性

excel - 从 vbscript 自动填充 Excel 文件中的 Excel 用户表单

vba - 复制工作表而不创建命名范围的新实例?

c# - 如何更改内部颜色而不是边框

php - 尝试在 Microsoft Excel 中导出带有中文等特殊字符的 csv 但失败