返回列表 上一主題 發帖

[發問] VBA下拉式選單(已解決)

將A欄資料定義動態範圍的名稱
ComboBox的RowSource屬性設為該名稱
學海無涯_不恥下問

TOP

回復 5# arcticfox


    option.gif
學海無涯_不恥下問

TOP

動態定義範圍的名稱,最大的好處就在於可以因應資料量成長
請注意圖檔中定義名稱的公式
定義好名稱後,在VBA只需引用該名稱就能指定到該範圍
RowSource屬性必須在屬性表內設定
LIST屬性可於表單初始化的同時,將下拉清單的LIST屬性設為該名稱就能使用
  1. Private Sub UserForm_Initialize()
  2. ComboBox1.List = [x].Value
  3. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2011-5-19 17:09 編輯

你的Sales所定義出來的會是甚麼?
INDEX
會傳回根據欄列號碼索引所選取之表格或陣列中一個元素的值。
他是一個值,並不是一個陣列或是儲存格參照
當然無法當成LIST
不過應可設成RowSource
你的問題似乎不是在於如何設定下拉清單
而是變數給值的問題
你的客戶選擇後要對應Sales
MATCH(專案紀錄!$C$2:$C$1000, 客戶資料管理!$A$2:$A$1000,0)這是要得到甚麼資料?
我想你應該從定義名稱公式去檢查
學海無涯_不恥下問

TOP

先看這句
Sales_P.FormulaR1C1 = "=Sales"
在這句之前你有將Sales_P給值嗎?
FormulaR1C1 屬性是儲存格的公式
這儲存格變數必須先SET
Set Sales_P=儲存格
Sales_P.FormulaR1C1 = "=Sales"
這樣才會成立,不然Sales_P是Nothing
我猜你是要把Sales_P指定成名稱Sales
那麼就用Set Sales_P=[Sales]
這純粹猜測,要了解你的思路才能給你正確方向
學海無涯_不恥下問

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題