Private Sub Workbook_open()
With Sheet1.ComboBox1
.AddItem "Soccer"
.AddItem "Tennis"
End With
End Sub
我想做一个if
声明,以便如果ComboBox1
值从无更改为Soccer / tennis,或从一项更改为另一项
然后
Range("A1").Value = "This learner Plays Sport"
问题是我不知道该怎么做,组合框值会从无更改为足球/网球,或从一项更改为另一项
我尝试过workbook.change,它在关闭整个程序时给我一个错误。
答案 0 :(得分:0)
尝试像这样的ComboBox更改事件代替工作簿更改事件:
Private Sub ComboBox1_Change()
If Sheet1.ComboBox1.Value = "Soccer" Or Sheet1.ComboBox1.Value = "Tennis" Then
Worksheets("Sheet1").Range("A1").Value = "This learner Plays Sport"
End If
End Sub
要进入此更改事件,只需双击工作表中的组合框,它将为您打开VBA编辑器。
这仅告诉您新选择的值是什么。如果您需要知道更改之前的内容,将会更加复杂。您需要创建一个变量来存储/跟踪更改后要与之进行比较的值。
如果您的运动清单很长,建议您使用Select Case
而不是if语句。例如:
Private Sub ComboBox1_Change()
Select Case Sheet1.ComboBox1.Value
Case "Soccer", "Tennis"
Worksheets("Sheet1").Range("A1").Value = "This learner Plays Sports"
Case "Lacross"
Worksheets("Sheet1").Range("A1").Value = "Something Different"
Case Else
Debug.Print "value not in list"
End Select
End Sub