![使用下拉式選單更改下拉清單旁邊的儲存格](https://rvso.com/image/1585763/%E4%BD%BF%E7%94%A8%E4%B8%8B%E6%8B%89%E5%BC%8F%E9%81%B8%E5%96%AE%E6%9B%B4%E6%94%B9%E4%B8%8B%E6%8B%89%E6%B8%85%E5%96%AE%E6%97%81%E9%82%8A%E7%9A%84%E5%84%B2%E5%AD%98%E6%A0%BC.png)
我對 vba 很陌生,有興趣創建一個執行以下操作的程式。當從下拉式選單中選擇一個項目時,它會將某些文字貼到所選下拉清單旁邊的儲存格中。
例如:我的下拉清單包含在 A 列 COMMENT MOVE 中
當我選擇“COMMENT”時,我想在 B 列“ENTER COMMENT”中填充 當我選擇“MOVE”時,我想在 B 列“ENTER MOVE TYPE”和 C 列“ENTER MOVE SPEED”中填充
我只希望在選擇下拉式選單時更改這些數據,因為我根據選擇的下拉式選單項目在其他單元格中使用此數據。
答案1
如果我理解正確的話,您可以使用 VBA 或僅使用函數來完成此操作。在我的範例中,我在 BothA1
和 Both 中有一個列表,A4
其中包含“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