使用下拉菜单更改下拉列表旁边的单元格

使用下拉菜单更改下拉列表旁边的单元格

我对 vba 还很陌生,对创建一个执行以下操作的程序很感兴趣。当从下拉菜单中选择一项时,它会将某些文本粘贴到所选下拉列表旁边的单元格中。

例如:我的下拉列表在 A 列包含 COMMENT MOVE

当我选择“评论”时,我想在 B 列中填充“输入评论”;当我选择“移动”时,我想在 B 列中填充“输入移动类型”;在 C 列中填充“输入移动速度”

我只希望在选择下拉菜单时更改这些内容,因为我正在根据所选的下拉菜单项在其他单元格中使用这些数据。

答案1

如果我理解正确的话,您可以使用 VBA 或函数来执行此操作。在我的示例中,我在A1A4Both 中有一个包含“COMMENT”和“MOVE”的列表。

在此处输入图片描述

B1有函数=IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))

C1函数中=IF(A1="MOVE","ENTER MOVE SPEED","")

A4对于我在工作表上使用 VBA的列表(右键单击工作表并选择“显示代码”)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range(Target.Address), Range("A4")) Is Nothing And Target.Count = 1 Then
    If Target.Value2 = "MOVE" Then
        Target.Offset(, 1).Value = "ENTER MOVE TYPE"
        Target.Offset(, 2).Value = "ENTER MOVE SPEED"
    ElseIf Target.Value2 = "COMMENT" Then
        Target.Offset(, 1).Value = "ENTER COMMENT"
        Target.Offset(, 2).Value = ""
    Else
        Target.Offset(, 1).Value = ""
        Target.Offset(, 2).Value = ""
    End If
End If
End Sub

我使用文本的相对位置,BC借助于此,.Offset根据列表位置需要更改的代码更少。

相关内容