将选择向下移动并在另一个工作表发生更改时将字体颜色从红色更改为黑色

时间:2017-05-30 19:49:43

标签: excel vba excel-vba

我有一个vba代码,可以很好地在发生更改时将一个工作表的选择保留在同一个单元格中。

现在,我需要一个vba代码来将选择向下移动,并在另一个工作表(sheet1列A)中将字体颜色从红色更改为黑色(当存在相同的更改时)。

当前代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A4")) Is Nothing Then
Application.EnableEvents = False
Me.Range("A5").Value = Target.Value
Target.Select
Application.EnableEvents = True
End If
End Sub

因此,当Sheet7单元格A4发生更改时,我需要在Sheet1 A列中选择删除一行并将字体颜色从RED更改为BLACK.Please help !!

2 个答案:

答案 0 :(得分:0)

我还没有对此进行测试,但它应该是这样的

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A4")) Is Nothing Then
    Application.EnableEvents = False
    Me.Range("A5").Value = Target.Value
    Target.Select
    Sheet1.Range("A" & Target.row + 1).Interior.Color = RGB(0, 0, 0)
    Application.EnableEvents = True
End If
End Sub

答案 1 :(得分:0)

试试这个。再次,未经测试。但是,如果Sheet1 A列中的文本为黑色,我会注释掉颜色变化。如果是的话,你将无法看到文本。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastRow As Long

    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

    If Not Intersect(Target, Me.Range("A4")) Is Nothing Then
        Application.EnableEvents = False
        Me.Range("A5").Value = Target.Value
        Target.Select
        Sheet1.Range("A" & lastRow + 1).Value = Target.Value
'        Sheet1.Range("A" & lastRow + 1).Interior.Color = vbBlack
        Application.EnableEvents = True
    End If
End Sub