【发布时间】:2020-02-26 05:32:56
【问题描述】:
我想根据另一个列值更新 2 列值(如果值更改)。假设我的 A 列有一个列表(AA1、AA2、AA3),B 列有一个列表(BB1、BB2),C 列有一个列表(CC1、CC2)。如果从 A 列中选择值“AA1”,则 B 列值应更改为 BB2,C 列更改为 CC1。但是,如果 A 列中选择的值与“AA1”不同,则不会发生任何事情。 B列中的值“BB1”也会发生相同的过程。我添加了一个vba,但它不起作用。还有另一种方法可以在不运行 vba 代码的情况下做到这一点吗?谢谢
Private Sub Worksheet_Change(ByVal Target As Range)
Dim changedCells As Range
Set changedCells = Range("A:C")
If Not Application.Intersect(changedCells, Range(Target.Address)) Is Nothing Then
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And LCase(Target.Value) = "aa1"Then
Cells(Target.Row, 2) = "BB2"
Cells(Target.Row, 3) = "CC1"
ElseIf Target.Column = 2 And LCase(Target.Value) = "bb1" Then
Cells(Target.Row, 1) = "AA3"
Cells(Target.Row, 3) = "CC2"
ElseIf Target.Column = 3 And LCase(Target.Value) = "cc2" Then
Cells(Target.Row, 1) = "AA2"
Cells(Target.Row, 2) = "BB2"
End If
End If
End Sub
【问题讨论】:
-
“不工作”没有帮助。请详细说明 - 错误信息,没有做你想做的事?你的逻辑也不清楚。并且您需要考虑 Elses,例如,如果 A 不是 AA1。
-
@SJR 没有错误消息。当我选择需要的值时,B 列和 C 列没有更新(仍然是相同的值)。
-
它正在工作(输入错误)。谢谢