2017-03-09 49 views
0

我知道問這個問題太天真了,但我被困在她身上,沒有在互聯網上找到解決方案。我有一個組合框,其中有4個colmns,其中3個是隱形的,一個是。在可見colomn中,我想在窗體的負載中顯示pname(一個字符串)的值。 我想:將數值分配給加載的多列組合框vba

cboPlanName.value=pname 
cboPlanName=pname 
cboPlanName.text=pname 

與前兩個線組合框diplays只是用的.text屬性它給了我一個errror(2135屬性只讀無法界定它)。

你有什麼建議? 預先感謝您。

+0

你去哪兒放說代碼,在'Form_Load'? –

+0

在**子Form_Open ** @Nathan_Sav – Marwan

+0

pname是否有值,是否在列表中,限制列表等。你能在代碼中多顯示一下嗎? –

回答

0

你需要將項目添加到組合框是這樣的:

cboPlanName.AddItem pname 

如果pname是值的數組,那麼從評論

For Each pnameVal in pname 
    cboPlanName.AddItem pnameVal.Value 
Next pnameVal 

更新:

你會需要將pname添加到public而不是Dim,在您的用戶表單頂部輸入Public pname as string(或只是Public pname,如果它不僅僅是一個字符串)或者如果該值來自Sub ina模塊,則需要將Public pname as string添加到模塊的頂部而不是用戶窗體,這將允許變量被傳遞到另一個子不丟失其價值

+0

當我將值添加到列表中時,它給了我一個錯誤:屬性原始源必須設置爲值列出值以使用此方法。無法將其添加到列表中而無法顯示該值? @ Mr.Burns – Marwan

+0

在Sub的開始或者在你嘗試向組合框添加'pname'之前,輸入這個'Debug.Print pname'並讓我知道返回的值是什麼('Crtl + G'來查看什麼值返回)@Marwan –

+0

它給出了價值需求值**測試**。我試圖以Form_Activate()的形式編寫代碼,但它似乎代碼沒有被刪除,並且當我在Sub Form_Open()中寫入代碼時,它崩潰了。Burns – Marwan

1

好吧,我終於找到解決方案知道它是一個4列的組合框,其中3個隱藏。我所做的是我通過組合框的顯示值的值進行循環,當值與字符串(pname)匹配時,我將組合框的選定值設置爲匹配的值,換句話說值在列表中,代碼查找與字符串(pname)相等的值並選擇它。

For j = 0 To cboPlanName.ListCount - 1 
     IF cboPlanName.Column(1, j) = pname Then 
     Me.cboPlanName = cboPlanName.ItemData(j) 
     End If 
    Next j 

並感謝那些誰試圖幫助,我真的很感激:)