更改所选单元格的字符的颜色和大小(如果未选中,请返回到初始状态)

时间:2018-11-13 08:03:06

标签: excel vba excel-vba events

我尝试使用事件worksheet_selectionChange开发一个小宏,以便当我选择一个单元格时,我希望里面的字符变大一些,并且单元格的颜色变为绿色。然后,当我取消选择单元格以选择另一个单元格时,我希望未选择的单元格返回到初始状态(这意味着没有颜色,字符大小,就像选择单元格之前一样)……显然我的宏确实做了我想要的字符大小(在选择单元格时字符的大小会发生变化,而当我取消选择它时,单元格字符的大小会像选择之前一样完全返回)。但是,对于颜色,它的工作方式并不像我想要的那样,实际上,当我选择它时,宏会更改该单元格的颜色(绿色),但是当我取消选择它(以选择另一个单元格)时,该颜色仍保留在该单元格内。 。请在下面找到我的vba代码(PS:我仅将此代码放置在我的excel文件(Sheet1)的一张纸中,因为我希望此代码仅适用于我的文件中的这张纸,在此先感谢您的帮助。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    LargeSize = FontSize * 1.2
    Cells.Font.Size = FontSize
    ActiveCell.Font.Size = LargeSize
    ActiveCell.Font.Size = LargeSize

    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

1 个答案:

答案 0 :(得分:2)

尝试一下。

Const FontSize As Integer = 12
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    LargeSize = FontSize * 1.2
    With Cells
        .Font.Size = FontSize
        .Interior.Color = xlNone
    End With
    With Target
        .Font.Size = LargeSize
        .Interior.Color = 49407
    End With

End Sub