我正在尝试更新工作表上所有标签的背景色。我想使用RGB值指示颜色,但是我被卡在两个地方。这是我现在拥有的代码:

Sheet2.Shapes("Label 2").Fill.BackColor.RGB = RGB(220, 105, 0)


这段代码将正确运行,但似乎没有任何效果。我的标签以白色(或透明)开头,并且从未更改。谁能告诉我要完成这项工作我需要做什么?我也添加了这个,但是它什么也没做:

shp.Fill.Solid


接下来,我想在一个变量中捕获此RGB值,这样我就不必重复输入。本质上,我正在寻找这样的东西:

dim col as Color
col = RGB(220,105,0)
Sheet2.Shapes("Label 2").Fill.BackColor.RGB = col


我知道没有称为Color的变量类型,但是我认为您可以看到我正在尝试做的事情。

最佳答案

尝试改为设置ForeColor:

Sheet2.Shapes("Label 2").Fill.ForeColor.RGB = RGB(220, 105, 0)


弄清楚该怎么做的一个好方法是在自己进行调整时记录宏。您可以随后检查生成的代码并将其用作起点。



这是一个过程示例,该过程将向活动表添加一个矩形,向其添加一些文本,然后使用RGB值为其着色:

Public Sub AddRectangleWithText()
    Dim textRectangle As Shape

    Set textRectangle = ActiveSheet.Shapes & _
        .AddShape(msoShapeRectangle, 10, 80, 250, 50)

    ' add your text
    textRectangle.TextFrame.Characters.Text = "Your mother was a hamster."

    ' fill the shape with the rgb color of your choice
    textRectangle.Fill.ForeColor.RGB = RGB(220, 105, 0)

End Sub

关于excel-vba - 改变形状的背景色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11552930/

10-09 03:32