ایجاد حلقه برای چندین combobox در vba

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • 5244

    • 2017/07/22
    • 6
    • 32.00

    [حل شده] ایجاد حلقه برای چندین combobox در vba

    روز بخیر
    با کد زیر اطلاعات رو در کامبوباکس یوزر فورم فراخوانی میکنم:

    کد:
        Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim v, e
    With Sheets("Sheet1").Range("C2:C200")
        v = .Value
    End With
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For Each e In v
            If Not .exists(e) Then .Add e, Nothing
        Next
        If .Count Then ComboBox1.List = Application.Transpose(.keys)
           End With
    
    
    End Sub
    
    
    Private Sub UserForm_Initialize()
    Dim v, e
    With Sheets("Sheet1").Range("C2:C200")
        v = .Value
    End With
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For Each e In v
            If Not .exists(e) Then .Add e, Nothing
        Next
        If .Count Then ComboBox1.List = Application.Transpose(.keys)
           End With
    
    
    End Sub

    با توجه به این که تعداد 64 کامبوباکس در یوزر فرم وجود داره، میخواستم اگر ممکنه راهنمایی کنید چطوری حلقه ایجاد کنم که تعداد کد ها زیاد نشه
    ممنونم
  • 5244

    • 2017/07/22
    • 6
    • 32.00

    #2
    نوشته اصلی توسط 5244
    روز بخیر
    با کد زیر اطلاعات رو در کامبوباکس یوزر فورم فراخوانی میکنم:

    کد:
        Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim v, e
    With Sheets("Sheet1").Range("C2:C200")
        v = .Value
    End With
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For Each e In v
            If Not .exists(e) Then .Add e, Nothing
        Next
        If .Count Then ComboBox1.List = Application.Transpose(.keys)
           End With
    
    
    End Sub
    
    
    Private Sub UserForm_Initialize()
    Dim v, e
    With Sheets("Sheet1").Range("C2:C200")
        v = .Value
    End With
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For Each e In v
            If Not .exists(e) Then .Add e, Nothing
        Next
        If .Count Then ComboBox1.List = Application.Transpose(.keys)
           End With
    
    
    End Sub

    با توجه به این که تعداد 64 کامبوباکس در یوزر فرم وجود داره، میخواستم اگر ممکنه راهنمایی کنید چطوری حلقه ایجاد کنم که تعداد کد ها زیاد نشه
    ممنونم







    با استفاده از کد زیر مشکل برطرف شد


    کد PHP:

    Private Sub UserForm_Initialize()
    Dim cFor Each c In Sheet1.Range("c2:c200")If c.Value <> "" Then    Dim i As Integer     For 14 To 56     Controls("ComboBox" i).AddItem c.Value     Next i     End If
    Next
     
    End Sub 

    کامنت

    چند لحظه..