2013-10-28 89 views
0

我有这个简单的VBA代码,我想要更改所选单元格的背景。不知怎的,命令选择。我以前学过的东西不起作用。你能帮我解决这个问题吗?我知道答案可能很愚蠢,但我似乎无法弄清楚。简单的VBA选择代码错误

Sub set_background_color() 

     'Add background color to selected cells 
     Selection.Interior.Color = RGB(255, 0, 0) 

    End Sub 

感谢

编辑:很抱歉的含糊不清的问题,这是我对堆栈溢出的第一个问题,所以我没有想到的错误类型的重要性。它给我错误“编译错误:期望的函数或变量”。

它附加到一个按钮,但即使我没有按钮运行它,它给了我同样的错误。

编辑2:我在Mac上运行Excel 2011,直到现在它从未给我在VBA中的任何兼容性问题。但是,这似乎并不奏效。

+3

什么不起作用?你有错误还是什么? – 2013-10-28 14:18:23

+0

运行此代码时选择了什么?你怎么称呼它?这是连接到一个按钮? – Floris

+0

将内部颜色设置为红色可能不够。您还需要控制类型(实体),透明度和可见性。一个单元格可能是红色和透明的 - 在这种情况下,你看不到任何事情已经完成... – Floris

回答

1

问题不在您的代码中,它在您的单元格内。

检查锁定单元状态和保护工作表的状态。

+0

我不知道你怎么知道这是一个问题与'保护'问题不给任何这样的迹象...或者我错过了什么吗? :) –

+0

我复制了代码并进行了测试。有效。我问我的自我 - >我怎么能故意造成失败?我唯一想到的是保护一些细胞。你的评论让我想到如果一个形状或图表被选中而不是一个范围,我们也可以使它失败.......还有什么可能? –

+0

嗯,好的......我以为我错过了这个问题中的某些东西...... –

1

如果你的工作不保护,那么试试这个

Sub set_background_color() 
    Dim r As Range 

    On Error Resume Next 
    Set r = Selection 
    On Error GoTo 0 

    If Not r Is Nothing Then 
     r.Interior.ColorIndex = 3 
    Else 
     MsgBox "Invalid Selection" 
    End If 
End Sub 
+1

非常聪明........也可能会使用** MsgBox TypeName(选择)** –

+0

是我们可以使用'TypeName(Selection)'以及:) –