我对 vba 还很陌生,对创建一个执行以下操作的程序很感兴趣。当从下拉菜单中选择一项时,它会将某些文本粘贴到所选下拉列表旁边的单元格中。
例如:我的下拉列表在 A 列包含 COMMENT MOVE
当我选择“评论”时,我想在 B 列中填充“输入评论”;当我选择“移动”时,我想在 B 列中填充“输入移动类型”;在 C 列中填充“输入移动速度”
我只希望在选择下拉菜单时更改这些内容,因为我正在根据所选的下拉菜单项在其他单元格中使用这些数据。
答案1
如果我理解正确的话,您可以使用 VBA 或函数来执行此操作。在我的示例中,我在A1
和A4
Both 中有一个包含“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
我使用文本的相对位置,B
并C
借助于此,.Offset
根据列表位置需要更改的代码更少。