2015-10-05 43 views
2

我是新手,需要幫助解決此問題。我試圖在Excel中使用此代碼來更改單元格的顏色和文本,但它不適用於合併的單元格。我如何讓它適用於合併的單元格?合併單元的代碼錯誤

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Intersect(Target, Range("$C$17:$C$80")) Is Nothing Then Exit Sub 
    Select Case Target 
    Case "" 
     Target = "Priority 1" 
     Target.Interior.ColorIndex = 3 
    Case "Priority 1" 
     Target = "Priority 2" 
     Target.Interior.ColorIndex = 6 
    Case "Priority 2" 
     Target = "Priority 3" 
     Target.Interior.ColorIndex = 45 
    Case Else 
     Target = "" 
     Target.Interior.ColorIndex = 15 
    End Select 
    Cancel = True 
End Sub 
+2

如果你描述了「不起作用」的含義,那麼肯定會有所幫助。什麼都沒發生?錯誤信息? (如果是這樣,哪裏和在哪條線上?)。作爲一個猜測,如果目標是多個單元格,你可能需要遍歷目標中的每個單元格。 –

+0

運行時錯誤「13」:類型不匹配 –

+0

您沒有指出哪條線路正在返回錯誤。再一次,最有可能的是你在多個單元格上操作(一個合併的單元格將是多個單元格),所以你可能需要循環目標中的每個單元格(或目標和你的範圍交叉點中的每個單元格)。 –

回答

2

超近,只是改變一個行:Select Case TargetSelect Case Target.Item(1)

全碼:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Intersect(Target, Range("$C$17:$C$80")) Is Nothing Then Exit Sub 

    Select Case Target.Item(1) 
    Case "" 
     Target = "Priority 1" 
     Target.Interior.ColorIndex = 3 
    Case "Priority 1" 
     Target = "Priority 2" 
     Target.Interior.ColorIndex = 6 
    Case "Priority 2" 
     Target = "Priority 3" 
     Target.Interior.ColorIndex = 45 
    Case Else 
     Target = "" 
     Target.Interior.ColorIndex = 15 
    End Select 
    Cancel = True 
End Sub 

結果:

這裏你可以看到,我有一個合併面積從C23到C26

enter image description here

+0

真棒謝謝你!我很感激。 –

+0

如果我想將範圍更改爲幾個選定的單元格,我該怎麼做? @PortlandRunner'C17,C21,C25,C29,C33,C42,C46,C50,C54,C58,C67,C71,C75,C83,C87,C91,C100,M17,M21,M25,M29,M33,M42,M46 ,M55,M59,M69,M73,M82,M86,W17,W21,W25,W29,AG17,AG21,AG25,AG34,AG38,AG42,AG51,AG55,AG59,AG68,AG72,AG81,物Ag85,AG89,AG98 ,AG102,AG106,AG110,AG114,AQ17,AQ21,AQ30,AQ34,AQ43,AQ47,AQ51,AQ60,AQ64,BA17,BA21,BA25,BA29,BA33,BA37,BA46,BA50,BA54,BA58,BA62,BA71 ,BA75,BA79,BA89,BA93' –

+0

您應該能夠更改相交範圍以包括不連貫的單元格。這裏是前三個例子:'範圍(「C17,C21,C25」)' –