如何在Excel下拉列表的选择基础上快速跳转到相邻单元格?


典型的Microsoft Excel用户可以通过使用下拉列表来简化数据输入过程。在将数据输入选定单元格时,使用下拉列表来限制输入选项可以加快速度并减少出错的可能性。本篇文章将介绍Excel的数据验证功能,您可以快速轻松地创建下拉列表选项。您可以通过命名基于特定名称的Excel表格的一系列项目来在Excel中创建下拉列表。然后,将该列表作为您要创建的数据验证下拉列表的来源。

另一方面,在某些情况下,您可能希望以某种方式选择Excel中的单元格,这种选择是由另一个下拉列表中显示的选项决定的。您可能曾经想过如何根据在下拉列表中所做的选择来移动到Excel中的下一个单元格。在本教程中,您将学习使用VBA根据下拉列表中的另一个选择来选择单元格。

使用VBA根据下拉列表中的值跳转到相邻单元格

步骤1

在我们的示例中,我们在Excel表格中列出了日期和星期几,并有一个下拉列表包含从星期一到星期日的日期。请参见下图。

步骤2

要添加VBA代码,请通过同时按下Alt键和F11键(Alt+F11)打开**Microsoft Visual Basic for Applications窗口**。

步骤3

然后单击**插入>模块**,将打开弹出**模块窗口**。

步骤4

在模块窗口中,键入以下VBA代码。

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address <> [C2].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:A8")
   For Each xRg In yRg
   'MsgBox Cell.Value
      If xRg.Value = ActiveCell.Value Then
         strAddress = xRg.Address
      End If
   Next
   If strAddress = "" Then
      MsgBox "Invalid Selection" & ActiveSheet.Name, _vbInformation, "VBOutput"
      Exit Sub
   Else
      Range(strAddress).Offset(0, 1).Select
   End If
End Sub

请参见下图。

在上面的代码中,我们添加了单元格区域A2:A8,在“Target.Address <> [C2].Address”中,C2是创建下拉列表的单元格。请根据您的需要更改这些单元格。

步骤5

单击**运行**或**F5**运行VBA代码。请参见下图。

运行上述VBA代码后,光标将根据下拉列表中的内容移动到下一个单元格。

请参见下图。

更新于:2022年9月12日

380 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告