2013-12-17 21 views
1

我試着用Excel 2010中VBA如下:選擇範圍由鼠標和設置參數

  1. 設置窗體上的切換按鈕。
  2. 移動到工作表
  3. 使用鼠標選擇而設置的小區參數(背景顏色)到切換按鈕 的背面色單元
  4. 的基團(範圍)。 。 。 繼續選擇單元格或取消選擇切換按鈕。

我到目前爲止是這樣的,但我得到上線設置顏色的全球範圍的錯誤:

Public Sub ToggleButton1_Click() 
Dim ActRange As Range 
Dim ActSheet As Worksheet 
Dim bgndColour As Variant 

    bgndColour = ToggleButton1.BackColor 

    Set ActSheet = ActiveSheet 
    Set ActRange = Selection 
    ActSheet.Select 
    ActRange.Select 
    Range(ActRange).Interior.Color = bgndColour 

End Sub 
+0

爲什麼使用切換按鈕而不是refedit控件? –

+0

因爲我有許多切換按鈕,每個切換按鈕最終都會對單元格執行不同的操作。我希望按鈕是可配置的。 – Cimbian

+0

我不喜歡添加不必要的行,我看到你可以恢復你的代碼在Selection.Interior.Color = bgndColour,如果不工作是什麼錯誤是你的bgndcolour變量 –

回答

1

ActRange已經是一個範圍。無需使用Range()對象

試試這個

ActRange.Interior.Color = bgndColour 

您的代碼可以降低到

Public Sub ToggleButton1_Click() 
    If TypeName(Selection) <> "Range" Then 
     MsgBox "Select a range first." 
     Exit Sub 
    End If 

    Selection.Interior.Color = ToggleButton1.BackColor 
End Sub 
+0

這擺脫了錯誤。謝謝。 :) – Cimbian

+0

預選範圍對我來說不起作用,因爲我想設置按鈕狀態並且所有設置時間都可以自由選擇用於標記的單元;然而,我現在意識到這是在'點擊'行爲,所以將不得不改變這一點。 我會嘗試優化後,我理解它是如何工作的。 :) – Cimbian

1

我不喜歡加inecesary行,我看你能在

恢復您的代碼
Selection.Interior.Color = bgndColour 

如果這不起作用你的bgndcolour變量是什麼錯誤

+0

+ 1用於優化代碼的建議:) –

+0

謝謝你的愉悅 –