Exceldynamic下拉菜单转到单元格

Private Sub Worksheet_Change(ByVal Target As Range) Select Case Range("B1").Value Case Is = "G&A Total" Application.Goto Range("G_A_Total"), Scroll:=True Case Is = "Accounting" Application.Goto Range("Accounting"), Scroll:=True Case Is = "Environmental" Application.Goto Range("Environmental"), Scroll:=True Case Is = "GSC" Application.Goto Range("GSC"), Scroll:=True Case Is = "Human Resources" Application.Goto Range("Human_Resources"), Scroll:=True End Select End Sub 

我目前有这个代码与数据validation下拉。 我想知道的是,无论如何要做到这一点,以便我放入列表中的任何内容都变成了从中拉出来的东西,而不必手动input每个内容。

当前编辑如下。

 Private Sub Worksheet_Change(ByVal Target As Range) Select Case Range("B1").Value Case Is = Range("A1") Application.Goto Range("G_A_Total"), Scroll:=True Case Is = Range("A2") Application.Goto Range("Accounting"), Scroll:=True Case Is = Range("A3") Application.Goto Range("Environmental"), Scroll:=True Case Is = Range("A4") Application.Goto Range("GSC"), Scroll:=True Case Is = Range("A5") Application.Goto Range("Human_Resources"), Scroll:=True End Select End Sub 

我改变了特定的情况是单元格引用哪些引用数据validationselect的单元格而不是引用每个单元格是否有一种方法来命名它们的范围,然后引用范围名称?

也许这样的事情

  Select Case Range("B1").Value Case Is = Range("Departments") Application.Goto Range("DepartmentsGoTo"), Scroll:=True End Select 

那么有2个我可以更新的命名列以避免经常更改代码?

基本上,比较每个命名范围与B1的值

 Private Sub Worksheet_Change(ByVal Target As Range) For Each myName In ActiveWorkbook.Names Select Case Range("B1").Value Case myName.Name Application.Goto Reference:=myName.Name, Scroll:=True End Select Next End Sub