2013-12-19 102 views
0

我已經創建了一個用戶表單,並在那裏放置了一個列表框和2個文本框。類型列表框不匹配

現在我的查詢是當我選擇一個項目,然後在項目的某些字符是在這兩個文本框顯示,當我試圖做到這一點我得到類型不匹配一個錯誤味精請指正

Option Explicit 
Dim a() As String 
Dim b() As String 
Dim i As Long 

Private Sub ListBox1_Click() 
a = Split("meter, inch, foot, yard", ",") 
b = Split("m, In, Ft, Yd", ",") 
For i = 1 To ListBox1.ListCount 

If ListBox1.Value(i, 0) = a(i) Then 
    TextBox1.Value(i, 0) = b(i) And TextBox2.Value(i, 0) = b(i) 
End If 
Next 
End Sub 
Sub UserForm_Initialize() 
a = Split("meter, inch, foot, yard", ",") 
ListBox1.List = a 
End Sub 

感謝你

回答

0

我不知道你想要完成什麼,但你可以嘗試下面的東西。只需將ListClick中的MouseClick或SelectedIndexChanged事件添加到ListBox1_Click即可。我寧願第二個。並將您的Form的onFormLoad添加到ListBox1_Click。如果您將我的代碼片段插入空白項目中,您可以檢查它是否按您希望的方式工作。

Sry基因,但它是一個有點難以預知你想要完成(什麼:

反正有使用數據綁定這個問題仍然清潔解決方案,如果您有興趣讓我知道,但是數據綁定更復雜的我會。說..

下面是代碼

Public Class Form1 

Dim a() As String = Split("meter, inch, foot, yard", ",") 
Dim b() As String = Split("m, In, Ft, Yd", ",") 

Private Sub ListBox1_Click(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseClick 

    If ListBox1.SelectedIndex < 0 Then 
     TextBox1.Text = String.Empty 
     TextBox2.Text = String.Empty 
    Else 
     TextBox1.Text = a(ListBox1.SelectedIndex) 
     TextBox2.Text = b(ListBox1.SelectedIndex) 
    End If 
End Sub 

Private Sub onFormLoad(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    ListBox1.Items.AddRange(a) 
End Sub 
End Class 
+0

感謝我使用的Office 2007和Excel文件格式的VBA我thnik被誤存儲在VB.net代碼的代碼你的快速反應,當我複製並粘貼代碼,那麼這是行不通的請原諒我,並給出正確的代碼 – user2998753

+0

您好,請在這個問題上幫助我 – user2998753