Excel ActiveX 控件到底有啥用?如此美貌的下拉菜單,非它不可

Excel 中的 ActiveX 控件,很多同學都不知道要怎麼用,甚至連表單控件也有很多人沒用過。


ActiveX 控件和表單控件的組件看上去都差不多,二者到底有什麼區別呢?


表單控件我寫過很多,比如我在 VBA 的案例教程中幾乎每次都會使用表單控件。表單控件還有個常見用途是控制動態圖表。以下是部分表單控件的教程,大家可以學習一下。


上述案例如果用 ActiveX 控件來做,將會更加簡單,因為 ActiveX 可以直接返回文本,而表單控件只能返回數值,還需要通過公式匹配出數值對應的文本。


今天我要教大家用 ActiveX 控件製作一個頗具個性化的下拉菜單,這恰恰是 ActiveX 控件的優勢,因為表單控件無法自定義外觀。


開始案例教學前,先了解一下表單控件和 ActiveX 控件分別能做什麼,不能做什麼。


表單控件:

可以:

  • 表單控件可以在不使用 VBA 代碼的情況下引用單元格數據並與其進行交互。
  • 可以使用表單控件來運行宏。

不可以:

  • 表單控件不能添加到用戶表單、不能控制事件,也不能修改表單控件來運行 Web 腳本。
  • 表單控件返回的結果是數值,而不能返回文本。


ActiveX 控件:

可以:

  • ActiveX 控件可用於工作表表單(使用或不使用 VBA 代碼都可以)和 VBA 用戶表單。
  • ActiveX 控件允許自定義外觀、行為、字體和其他特性,具有很大的靈活性。
  • 我們還可以控制與 ActiveX 控件進行交互時發生的不同事件;也可以編寫宏來響應與 ActiveX 控件關聯的事件。
  • ActicveX 控件可以直接返回所選列表中的文本內容。

不可以:

  • 無法從用戶界面將 ActiveX 控件添加到圖表工作表,也無法將其添加到 XLM 宏工作表。
  • 不能將宏分配為直接從 ActiveX 控件運行,而表單控件則可以。


請注意:並非所有 ActiveX 控件都可以直接用於工作表;有些 ActiveX 控件只能用於 VBA 用戶表單。 如果向工作表中添加這些特殊 ActiveX 控件的話,Excel 會顯示消息“不能插入對象”。


案例:


用 ActicveX 控件在 F2 單元格製作姓名下拉菜單,篩選姓名,即可出現對應的分數。效果如下圖 2 所示。


分享到:


相關文章: