0
我試圖在活動工作表內放置一個組合框(但不是activeX組合框),選擇一個列表來填充和鏈接單元格。這是一個容易的任務,例如:(VBA)將組合框+宏事件放在單元格更改上
Sub make_combobox()
ActiveSheet.DropDowns.Add(69.75, 1.5, 79.5, 40.5).Select
Selection.Name = "combo"
ActiveSheet.Shapes("combo").Select
With Selection
.ListFillRange = "$A$1:$A$3"
.LinkedCell = "$D$1"
.DropDownLines = 8
.Display3DShading = False
End With
End Sub
我試圖把宏包含此組合框,選擇時鏈接的單元格是根據在組合框中選擇的選項改變,它會顯示MSGBOX工作。我的部分工作表中寫道的:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D1")) Is Nothing Then
MsgBox "It works!"
End If
End Sub
不幸的是,它不工作(其實,當我手動更改D1值時,它的工作原理,但不是在組合框變化的結果工作)。
謝謝! Bu我仍然想知道爲什麼它不把鏈接單元中的變化看作是執行宏的衝動。 – user2280549
我不認爲你會在這個問題上得到明確的答案。事件發生時觸發事件處理程序。顯然,Excel開發人員決定,通過組合框更改更新單元格值時,不會引發此類事件。我認爲這是一個可行的原因是你有'Combobox_Change'事件處理程序來處理這個問題。如果你可以同時使用,那麼你可能會「複製」一個事件,我無法想象這樣的結果是可取的。 – Kapol