Excel 根据下拉列表中的输入显示单元格范围

Excel 根据下拉列表中的输入显示单元格范围,excel,vba,Excel,Vba,我试图在一张工作表上节省空间,该工作表在a列中有课程列表,在AB开始的连续列中有日期。 在这些课程下,我有一份冻结状态下的人员名单,其中的单元格被填满,以表明他们是否有空 我目前正在通过填充日期列下的单元格来说明课程的举办日期。我想做的是有一个带有课程名称的下拉菜单,它会在右边显示相应的填充单元格。 看起来这应该是可能的,但我还没有找到真正符合我要求的代码。嗯,在我看来,您想隐藏所有行,可能应该锁定它们以确保数据已更改,然后插入下拉列表、列表框、组合框或任何您喜欢的内容。然后,您可以通过执行类似

我试图在一张工作表上节省空间,该工作表在a列中有课程列表,在AB开始的连续列中有日期。 在这些课程下,我有一份冻结状态下的人员名单,其中的单元格被填满,以表明他们是否有空 我目前正在通过填充日期列下的单元格来说明课程的举办日期。我想做的是有一个带有课程名称的下拉菜单,它会在右边显示相应的填充单元格。
看起来这应该是可能的,但我还没有找到真正符合我要求的代码。

嗯,在我看来,您想隐藏所有行,可能应该锁定它们以确保数据已更改,然后插入下拉列表、列表框、组合框或任何您喜欢的内容。然后,您可以通过执行类似的操作来填充列表

   For Each cell in Worksheet("").Range("Your Range Here")
         ComboBox1.Add(cell)
   Next
或者

然后,您应该使用组合框\u SelectedIndexChanged(或类似)事件来确定当前选择的课程,如

   If e.SelectedIndex = "Some Course" Then
       ' Unhide Proper Rows/Columns
   End If
不要忘记检查“-1”(未选择任何内容)


如果您需要更具体的答案,请告诉我,我很难理解工作表中数据的位置,您说的是“连续列”“,我的意思是,在一行的列a中有一个课程,在同一行中有几个日期,直到列AB。希望这能有所帮助。

我认为你不需要VBA来完成这项工作。如果我理解正确,您可以使用
数据验证列表
在下拉列表中获取您的课程名称。然后您可以使用/或
Vlookup
Offset
Match
Index
函数将单元格移到右侧。这真的取决于你的数据是如何设置的。也同意斯科特的观点,+1来自我。同意。这就是我最终成功的方式。谢谢。原来VLOOKUP是这个问题的正确答案。我只需要在单元格中输入值,而不是填充/填充它们,然后使用条件格式来获得我想要的结果。谢谢你的回答。
   If e.SelectedIndex = "Some Course" Then
       ' Unhide Proper Rows/Columns
   End If
   If e.SelectedIndex = -1 Then Exit Sub