2013-10-28 87 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)'以及:) –