选项按钮用户m到chnage列字体颜色

时间:2017-02-06 11:24:18

标签: excel vba excel-vba userform

我在用户表单中有两个选项按钮,我需要执行以下操作。

如果单击选项按钮1,则以白色字体(仅限文本)创建整个列F

如果单击选项按钮2,则将整个列F设为深蓝色字体(仅限文本)。

我已经提出了下面的代码,但问题是,当我单击任何选项按钮时,宏会更改整个工作表的字体颜色,我只想在COLUMN F中更改它。

Private Sub OptionButton1_Click() 
'Option Button Hide 
Columns("F:F").Select 
Range("F114").Activate 
With Selection.Font 
.Color = -10477568 
.TintAndShade = 0 
End With
End Sub 

Private Sub OptionButton2_Click() 
'Option Button Unhide 
Columns("F:F").Select 
Range("F114").Activate
With Selection.Font 
.ThemeColor = xlThemeColorDark1 
.TintAndShade = 0 
End With 
End Sub

2 个答案:

答案 0 :(得分:1)

站在你的叙述中你必须

  • 避免select并使用直接range参考

    并因此阻止合并的单元格扩大受代码影响的单元格范围

  • 交换OptionButtons代码

如下:

Private Sub OptionButton1_Click()
    'Option Button Hide
    With Columns("F:F").Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
End Sub

Private Sub OptionButton2_Click()
   'Option Button Unhide
    With Columns("F:F").Font
        .Color = -10477568
        .TintAndShade = 0
    End With
End Sub

答案 1 :(得分:0)

只需移除SelectSelection即可使其正常运行:

Private Sub OptionButton1_Click()
    'Option Button Hide
    With Columns("F:F").Font
        .Color = -10477568
        .TintAndShade = 0
    End With
End Sub


Private Sub OptionButton2_Click()
    'Option Button Unhide
    With Columns("F:F").Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
End Sub