gpt4 book ai didi

excel - 如果 activecell 内部颜色发生变化,则

转载 作者:行者123 更新时间:2023-12-04 21:30:35 24 4
gpt4 key购买 nike

我想要以下 VBA 代码:

如果事件单元格内部颜色更改为 colorindex 44,那么我希望单元格右侧的五列具有文本“完成”和今天的日期。

我已经尝试了以下方法,但仅当我将所选单元格向右移动时才有效。当单元格颜色未更改时,它也不会停止工作。

Private Sub Worksheet_SelectionChange  (ByVal Target As Range)

If ActiveCell.Offset(0, -1).Interior.ColorIndex = 44 Then
ActiveCell.Offset(0, 4) = "Done" & Date
End If

End Sub

最佳答案

您必须使用 Target而不是 ActiveCell

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex = 44 Then
Target.Offset(ColumnOffset:=4).Value = "Done " & Date
End If
End Sub

请注意,这无法检查颜色是否已更改,因为没有相应的事件。您只能测试实际颜色索引是否为 44。但为了防止覆盖“更改”日期,您可以测试日期是否已经存在。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub 'exit if more than one cell is selected

If Target.Interior.ColorIndex = 44 And Not Left$(Target.Offset(ColumnOffset:=4).Value, 4) = "Done" Then
Target.Offset(ColumnOffset:=4).Value = "Done " & Date
End If
End Sub

关于excel - 如果 activecell 内部颜色发生变化,则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53301221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com