Excel 根据下拉列表转到行范围中的匹配单元格
我有一个一行的名字列表,A2到AAS2,我还有一个包含所有这些名字的下拉列表。我想要一些VBA代码,当列表更改时,excel将跳转到与列表中的项目匹配的单元格。有人能帮我吗?多谢各位 名称只是文本,没有命名范围 以下是我迄今为止所尝试的:Excel 根据下拉列表转到行范围中的匹配单元格,excel,vba,validation,Excel,Vba,Validation,我有一个一行的名字列表,A2到AAS2,我还有一个包含所有这些名字的下拉列表。我想要一些VBA代码,当列表更改时,excel将跳转到与列表中的项目匹配的单元格。有人能帮我吗?多谢各位 名称只是文本,没有命名范围 以下是我迄今为止所尝试的: Private Sub FindTicker() Dim MyVariable As String MyVariable = Range("L1").Value Application.Goto Reference:=Range(MyVari
Private Sub FindTicker()
Dim MyVariable As String
MyVariable = Range("L1").Value
Application.Goto Reference:=Range(MyVariable)
End Sub
而且
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> [L1].Address Then
Exit Sub
Else
JumpToCell
End If
End Sub
Sub JumpToCell()
Dim xRg, yRg As Range
Dim strAddress As String
strAddress = ""
Set yRg = Range("A2:AAS2")
For Each xRg In yRg
'MsgBox Cell.Value
If xRg.Value = ActiveCell.Value Then
strAddress = xRg.Address
End If
Next
If strAddress = "" Then
MsgBox "The Day You Selected in Cell D4 Was Not Found On " & ActiveSheet.Name, _
vbInformation, "Ticker Finder"
Exit Sub
Else
Range(strAddress).Offset(0, 1).Select
End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果是Target.Address[L1]。则为Address
出口接头
其他的
跳跃式电池
如果结束
端接头
子跳线单元()
Dim xRg,yRg As系列
她穿得像绳子
strAddress=“”
设置yRg=范围(“A2:AAS2”)
对于yRg中的每个xRg
'MsgBox Cell.Value
如果xRg.Value=ActiveCell.Value,则
strAddress=xRg.地址
如果结束
下一个
如果strAddress=“”,则
MsgBox“在单元格D4中选择的日期在”&ActiveSheet.Name中找不到_
VBA信息,“股票查询器”
出口接头
其他的
范围(横向)。偏移(0,1)。选择
如果结束
端接头
当我尝试使用这两种方法时,当我更改下拉列表时,什么都没有发生。没有错误或任何东西。有很多方法可以做到这一点,通过一些调整,上面的代码可以工作,但效率有点低,比需要的更复杂。最简单的方法是使用来定位单元格: 假设您的名称下拉列表位于sheet MySheet上的单元格A1中,长列表位于列C中。使用Find方法将范围变量设置为等于单元格A1中包含项目的第一个单元格
Dim rng As Range
Dim ws As Worksheet
Set ws = Sheets("MySheet")
Set rng = ws.Range("C:C").Cells.Find(ws.Range("A1"), lookat:=xlWhole)
If Not rng Is Nothing Then ' the item was found
rng.Select
Else
MsgBox "This item is not in the list", vbInformation
End If
请编辑到目前为止您尝试过的内容以及与该代码相关的问题。堆栈溢出用于根据提供的代码回答特定问题,而不是提供代码。“我尝试了各种解决方案”-更具体一点总是有帮助的。你试过的一件事是什么?你试过的时候到底发生了什么?“我有一个列在一行的名字列表,A2到AAS2”它可以表示各种事情,例如命名范围。不确定你的数据是什么样子。我已经用更多信息编辑了我的帖子。我为缺乏信息而道歉。