我尝试了在 SuperUser 上找到的几个不同的 VBA 位,但无法使其工作。
当我单击另一个单元格时,我正尝试更新一个单元格。
我在 A43:A54 中有数据,它是一个名称列表,在 B43:B54 中也有一个列表。
当我单击 A43:A54 中的单元格时,我想用单击单元格的内容更新单元格 B38,同时用 B43:A54 同一行的内容更新单元格 B39
例如...
A43 = 伦敦,B43 = 格拉斯哥
A44 = 伯明翰,B44 = 爱丁堡
A45 = 曼彻斯特,B45 = 贝尔法斯特
等等等等
如果我单击单元格 A44,我希望单元格 B38 将其内容更改为伯明翰,单元格 B39 将其内容更改为爱丁堡
谢谢
答案1
只需将此代码添加到您的工作表的代码区域即可:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A43:A54")) Is Nothing And Target.Cells.count = 1 Then
Range("B38") = Target.Value
Range("B39") = Target.Offset(, 1).Value
End If
End Sub
答案2
您可以将公式与 VBA 组合起来。
在Options
:
Options > Formulas > Enable Iterative Calculations
公式:::
B38
工作 表模块中的代码=IF(AND(CELL("row")>=43,CELL("row")<=54,CELL("col")=1),CELL("contents"),B38)
B39
:=IFNA(VLOOKUP(B38,$A$43:$B$54,2,FALSE),"")
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A43:A54")) Is Nothing Then Exit Sub
Me.Calculate
End Sub