2

我正在尝试更新工作表上所有标签的背景色。我想使用 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 的变量类型,但我想你可以看到我想要做什么。

4

3 回答 3

12

尝试设置 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
于 2012-07-19T02:11:40.330 回答
4

ForeColor实际上控制Excel中注释/文本框的背景色如下;

  • Activecell.Comment.Shape.Fill.ForeColor.RGB = RGB(240, 255, 250) 'Mint Green

因为Comment/TextBox ForeColor是应用程序背景颜色的前景填充。

于 2015-12-27T16:12:16.910 回答
0

我需要添加

textRectangle.Fill.Visible = msoTrue

在 Office 2016 中

textRectangle.Fill.ForeColor.RGB = RGB(220, 105, 0)

产生效果。

于 2019-01-10T09:25:21.590 回答