2010-02-09 50 views
1

下面的宏從正在引用一個範圍的單元拉取一個值,然後相應地執行操作。我該如何改變這種情況才能運行單元中相關條目的情況?調用單個單元而不是範圍

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    If Target.Address = "$C$5" Then 
     Select Case Target.Value 
     Case Phones4U, P4U 
     Case MBNA, MBNA1 
     'Case Is = O2, The_Problem_Network 
     'Case Is = TMobile, TMobile 
     'Case Is = 3, Run_3 
     'Case Is = Orange, Orange 
     'Case Is = Carphone_Warehouse, CPW 
     'Case Is = Virgin_Media, VirginMedia 
     'Case Is = Virgin_Mobile, VirginMobile 
     'Case Is = Lifestyle_Group, LSG 
     'Case Is = BT, BT 
     'Case Is = Barclays, Barclays 
     'Case Is = Nat_West, NatWest 
     'Case Is = RBS, RBS 
     'Case Is = Unipart, Unipart 
     'Case Is = Vodafone_Group, Vodafone 
    End Select 
    End If 
End Sub 

感謝您的幫助。

+0

工作,你的意思是要檢查目標小區C5是否包含文本「MBNA」,「Phones4U」等? ...你的代碼目前沒有在做什麼。 – hawbsl 2010-02-09 12:35:30

+0

當最終用戶從下拉列表中選擇公司名稱時MBNA我需要上面的代碼來運行與該公司名稱相關的相關宏。單元格C5後面是所有公司名稱的下拉列表。所以當最終用戶選擇MBNA時,所有宏運行而不是與MBNA關聯的宏。我如何讓宏只在C5中運行選定的公司名稱,而不是從下拉列表(範圍)中運行所有公司名稱? – 2010-02-09 13:09:39

+0

你是如何製作下拉列表的(在Excel中有多種下拉列表的方式) – hawbsl 2010-02-09 13:33:35

回答

3

我認爲,像這樣的語法應該沒有問題

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$C$5" Then 
     Select Case Target.Value 
     Case "Phones4U" 
       P4U 
     Case "MBNA" 
       MBNA1 
     Case "O2" 
       The_Problem_Network 
     ' etc 
    End Select 
    End If 

End Sub 
+0

謝謝gd047!它完美的作品! – 2010-02-09 14:59:45

相關問題