2012-07-19 307 views
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 

我知道,有没有所谓的颜色变量的类型,但我认为你可以看到什么,我试图做的。

回答

5

尝试设置前景色改为:

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

的一个好办法弄清楚做什么是录制宏,而你让自己的调整。之后您可以检查生成的代码并将其用作起点。


这里是将一个矩形添加到activesheet,添加一些文本,然后上色它与你的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 
+0

谢谢。我之前尝试过,没有得到任何结果。我可以改变高度和宽度以及其他一些东西。我无法用颜色或边界做任何事情。至于录音,你不能用鼠标做这样的事情(我不认为),所以这不是一个选择。 – Alex 2012-07-19 03:06:39

+0

我想知道标签是否具有颜色属性。我用一个文本框尝试了这一点,它很容易工作。我认为我会切换到文本框,因为它们基本上是一样的。但是如果有人有任何意见,我仍然乐于发表评论。谢谢。 – Alex 2012-07-19 03:10:42

+1

您也可以使用矩形形状而不是标签。您可以通过形状轻松设置颜色,轮廓等。 – 2012-07-19 04:01:58

4

ForeColor实际控制的背景色在Excel中的评论/文本框(s)如下;

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

Comment/TextBoxForeColor为前景填充在Applicatoin背景颜色。