【问题标题】:Change font size whenever specific value is entered in a range每当在范围内输入特定值时更改字体大小
【发布时间】:2018-04-26 04:57:51
【问题描述】:

我的问题很简单:我在 Excel 上有一系列单元格,用户可以在其中输入 3 到 11 之间的任何值。我已经有一个宏,只要在我的工作表上输入 3 或 11 就可以运行范围。但是,我想要第二个宏,它只在输入 11 时触发,以自动将字体大小从 11 增加到 12。

这是我想要做的:

Sub Increase_Character_Size(ByVal Target As Range)

If (Target.Column >= 7 And Target.Column <= 16) Or (Target.Column >= 17 And Target.Column <= 26) And Len(Target.Value) > 0 Then
    If Target.Value = 11 Then
        Cells(Target.Row, Target.Column).Font.Size = 12
    Else
        Cells(Target.Row, Target.Column).Font.Size = 11
    End If
End If

End Sub

但它似乎根本没有任何效果。 有什么建议么?提前谢谢!

注意:我是 Font.Size 编码的新手,所以请原谅这里的怪诞错误!

【问题讨论】:

  • 您的工作表名称是什么,这个子 (Increase_Character_Size) 是如何调用的?
  • 您的代码按预期工作。将 sub 放入 Sheet Module 并重命名为 Sub Worksheet_Change(ByVal Target As Range)
  • 工作表被称为“Punti”,并且 sub 包含在工作表的代码中。每当 7 到 16 或 17 到 26 之间的任何列中的值发生更改并设置为特定值“11”时,就会(假设)调用该宏

标签: vba fonts font-size


【解决方案1】:

Cells(1,1).Font.Size = 12 在我的 Excel 中立即运行。也许您正在更改错误的单元格或 if 中的条件不正确?

您是否正在使用特殊活动来做您想做的事情?比如:Private Sub Worksheet_Change(ByVal Target as Range)?

【讨论】:

  • 谢谢!我附加了代码,它起作用了!谢谢大家的帮助!
【解决方案2】:

将代码放在工作表模块中,Worksheet_Change() 事件:


Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If Val(.Value) = 11 And .CountLarge = 1 Then
            If .Column >= 7 And .Column <= 26 Then .Font.Size = 12
        End If
    End With
End Sub

如果 Worksheet_Change() 已有其他操作,则将其附加到该操作

【讨论】:

    猜你喜欢
    • 2016-06-01
    • 2012-05-08
    • 2021-11-24
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2019-03-22
    相关资源
    最近更新 更多