我在互联网上搜索了大约6个小时,试图找到合适的vba代码,但似乎都不起作用。我尝试了SelectionChange、Change等所有功能,但似乎都无法正常工作。
这是我需要的:我有3列(A、B和C(。它们是下降的。它们不依赖于命名范围。我使用了"数据验证列表"属性。
数据验证:
- 对于列A单元格:='JFG-JF'$C$1:$ZZ$1
- 对于列B单元格:=OFFSET
- 对于列C单元格:=OFFSET(XLOOKUP(B2,'JF-JSF'!$C$1:$AW$1,'JF-JSF'!$C$2:$AW$16(,0,0,ROWS('JF-JSF'!$A:$A(-COUNTIF('JF-JSF'!$C:$C,"(,1(
我只需要一个vba代码,确保a列中的任何单元格更改/选择都会重置/清除B列和C列中的相邻单元格。如果a列没有更改,但B列发生了更改,则重置/清除C列单元格。
最后,我希望代码的一部分以某种方式突出显示任何更改的选择。颜色可以是橙色、黄色——无论什么——只需要能够直观地看到是否进行了新的选择/更改。
利用上面链接的论坛,我可以调整我的编码,现在它可以完美地工作了!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count < 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Not CellHasValidation(Target) Then Exit Sub
On Error GoTo haveError
Application.EnableEvents = False
Target.Offset(0, 1).Value = ""
Target.Offset(0, 2).Value = ""
Target.Offset(0, 1).Interior.ColorIndex = 44
Target.Offset(0, 2).Interior.ColorIndex = 44
Application.EnableEvents = True
Exit Sub