根据单元格值更改字体和颜色大小

时间:2020-11-09 21:12:19

标签: excel vba

这与我在使用此问题的搜索中发现的非常不同。

我希望能够根据范围的单元格值更改字体大小和颜色(RGB)。这将允许用户自定义表单(标题的大小和颜色,常规文本等)

对于字体大小,下面的方法可以很好地工作,但是除非我在代码中指定颜色,否则它不适用于字体颜色。

单元格B1包含字体大小 12 ,单元格B2包含 255、255、0

Sub fontsizecolor ()

Dim rgb2 As String
rgb2 = ThisWorkbook.Worksheets("sheet1").Range("B2").Text

With Worksheets("Sheet1").Range("A1:A10")
 .Font.Size = Range("B1")
        '.Font.Color = RGB(255, 255, 0)  **<---- this works**
 
 .Font.Color = RGB(rgb2)
 
 
End With

End Sub

1 个答案:

答案 0 :(得分:1)

如BigBen所述,您需要为RGB提供3个参数,而Split函数可以为您实现这一目标。

在下面的示例中,我们从B2中获取文本,将其拆分并将元素存储到数组中。然后,我们只需将这些元素输入RGB中即可:

Sub fontsizecolor()

    Dim rgb2, rgbArray() As String
    
    rgb2 = ThisWorkbook.Worksheets("sheet1").Range("B2").Text
    rgbArray = Split(rgb2, ",") ' split string on ","
    
    With Worksheets("Sheet1").Range("A1:A10")
        .Font.Size = Range("B1")
        .Font.Color = RGB(rgbArray(0), rgbArray(1), rgbArray(2)) ' feed array elements as arguments
    End With

End Sub
相关问题