Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Имя combobox как переменная / 8 сообщений из 8, страница 1 из 1
10.09.2013, 16:08
    #38392481
Ярослав...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
Здравствуйте, столкнулся с проблемой на VBA. Есть форма, на ней динамически создаются combobox-ы. Дальше относительно того, какие .Value выбраны, я копирую определенный диапазон ячеек с одного листа на другой. Как правильно сделать имя combobox-а переменной CBName , а дальше циклом их все перебрать

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub CommandButton1_Click()
Dim CBName As MSForms.ComboBox

    For Each CBName In Me.Controls
        Select Case CBName .Value
            Case "2.1.Ø=300 ìì"
                Sheets("test").Select
                Range("W_300").Select
                Call CopyPaste
            Case "2.2.Ø=450 ìì"
                Sheets("test").Select
                Range("W_450").CurrentRegion.Select
                Call CopyPaste
            Case "2.3.Ø=600 ìì"
                Sheets("test").Select
                Range("W_600").CurrentRegion.Select
                Call CopyPaste
             Case "2.4.Ø=750 ìì"
                Sheets("test").Select
                Range("W_750").CurrentRegion.Select
                Call CopyPaste
             Case "2.5.Ø=450 ìì"
                Sheets("test").Select
                Range("W_450_2").CurrentRegion.Select
                Call CopyPaste
        End Select
    Next
End Sub
...
Рейтинг: 0 / 0
10.09.2013, 16:18
    #38392505
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
примерно так
Код: vbnet
1.
2.
3.
For i=1 To 20
  Select Case Me.Controls("MyCombo"+CStr(i)).Value
  ....
...
Рейтинг: 0 / 0
10.09.2013, 16:27
    #38392522
Ярослав...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
Спасибо огромное!!! Работает как надо, но почему то в конце выдает ошибку - Could not find specified object. Ругается на эту строку
Код: vbnet
1.
Select Case Me.Controls("MyCombo"+CStr(i)).Value


Как избавится от этой ошибки?
...
Рейтинг: 0 / 0
10.09.2013, 16:59
    #38392588
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
Ну так надо правильно указать диапазон для i
...
Рейтинг: 0 / 0
10.09.2013, 17:09
    #38392609
Ярослав...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
i у меня сделана глобальной переменной, и приращение идет в подфункции где идет добавление combobox-ов
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub Add_Combobox()
Dim cbo As MSForms.ComboBox
    
    Set cbop = Me.Controls.Add("Forms.ComboBox.1", "cbop", True)
        With cbop
            .Name = "ComboBoxPanel" & i
            .Left = 20
            .Top = il
            .Width = 150
            .AddItem shtOfferQuotation1.Range("W_300")
            .AddItem shtOfferQuotation1.Range("W_450")
            .AddItem shtOfferQuotation1.Range("W_600")
            .AddItem shtOfferQuotation1.Range("W_750")
            .AddItem shtOfferQuotation1.Range("W_450_2")
        End With
    Set cbor = Me.Controls.Add("Forms.ComboBox.1", "cbor", True)
        With cbor
            .Name = "ComboBoxRack" & i
            .Left = 210
            .Top = il
            .Width = 250
            .AddItem shtOfferQuotation1.Range("M_Rack")
            .AddItem shtOfferQuotation1.Range("T_Rack")
        End With
    il = il + 25
    i = i + 1
End Sub
...
Рейтинг: 0 / 0
10.09.2013, 17:14
    #38392619
Ярослав...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
Прошу прощения не вижу где можно отредактировать сообщение, опечатался, в подфункции
Код: vbnet
1.
2.
3.
4.
5.
Private Sub CommandButton1_Click()
..
 For x = 1 To i
...
end sub
...
Рейтинг: 0 / 0
10.09.2013, 17:17
    #38392627
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
Ну так правильно, если вы добавили, скажем, 15 комбобоксов, то чему у вас будет равна i???
...
Рейтинг: 0 / 0
10.09.2013, 17:24
    #38392643
Ярослав...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя combobox как переменная
Айайай, приношу извинения за невнимательность, Спасибо большое за помощь!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Имя combobox как переменная / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]