Vba Excel动态下拉列表转到单元格
我目前有一个与数据验证下拉列表一起工作的代码。我想知道的是,无论如何都有办法使这个列表变得动态,这样我在列表中输入的任何内容都会变成它所要从中提取的内容,而不必手动输入每个内容 当前编辑如下Vba Excel动态下拉列表转到单元格,vba,excel,excel-2013,Vba,Excel,Excel 2013,我目前有一个与数据验证下拉列表一起工作的代码。我想知道的是,无论如何都有办法使这个列表变得动态,这样我在列表中输入的任何内容都会变成它所要从中提取的内容,而不必手动输入每个内容 当前编辑如下 Private Sub Worksheet_Change(ByVal Target As Range) Select Case Range("B1").Value Case Is = "G&A Total" Application.Goto Range("G
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
我改变了具体的情况是单元格引用,它引用通过数据验证选择的单元格,而不是引用每个单独的单元格。是否有方法对它们进行范围命名,然后引用范围名称
也许是这样的
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
然后有两个范围命名列,我可以更新它们以避免经常更改代码?基本上,将每个列与B1中的值进行比较
Select Case Range("B1").Value
Case Is = Range("Departments")
Application.Goto Range("DepartmentsGoTo"), Scroll:=True
End Select
我不确定我是否完全理解您的问题,但您可以为列表创建一个范围名称,例如,部门
,并将=部门
放在“源”下。这样,每次更新范围名称时,列表都会更新。这正是我想要的,所以这会获取B1,这是数据验证,然后将大小写设置为所选名称。然后它转到所选的名称。有没有办法在第二栏写下该去哪里。这样一来,我的G&A总范围就被简单地命名为G.A
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