Здравствуйте! Занимаюсь совсем недавно VBA, поэтому возникла проблемка... У меня есть на форме Combobox, который я заполняю числами от 0 до 31 с помощью кода
[vba]
Код
For i = 0 To 31 Spisok.AddItem i Next
[/vba]
Далее я по кнопке добавляю выбранные числа из этого комбобокса в ячейки Excel так, что в ячейках A пишется слово "Совпадение", а в ячейке B - выбранная цифра из комбобокса. Так вот задача следующего плана - необходимо после добавления чисел в ячейки убрать эти числа из Combobox, чтобы можно было добавлять только уникальные числа (без повторений).
Я решил при открытии формы анализировать есть ли символы "Совпадение" в диапазоне ячеек A6:A500 и если есть, то запомнить число из ячейки B и не заносить больше в Combobox..Но что-то работает не так как нужно (исключается только одно число из Combobox). В чём проблема?
[vba]
Код
Private Sub UserForm_Activate() For i = 0 To 31
For j = 6 To 500 If Range("A" & j).Value = "Совпадение" Then chislo = Range("B" & j).Value Next
If chislo <> i Then Spisok.AddItem i Next
End Sub
[/vba] [moder]Дайте теме более конкретное название.[/moder]
Здравствуйте! Занимаюсь совсем недавно VBA, поэтому возникла проблемка... У меня есть на форме Combobox, который я заполняю числами от 0 до 31 с помощью кода
[vba]
Код
For i = 0 To 31 Spisok.AddItem i Next
[/vba]
Далее я по кнопке добавляю выбранные числа из этого комбобокса в ячейки Excel так, что в ячейках A пишется слово "Совпадение", а в ячейке B - выбранная цифра из комбобокса. Так вот задача следующего плана - необходимо после добавления чисел в ячейки убрать эти числа из Combobox, чтобы можно было добавлять только уникальные числа (без повторений).
Я решил при открытии формы анализировать есть ли символы "Совпадение" в диапазоне ячеек A6:A500 и если есть, то запомнить число из ячейки B и не заносить больше в Combobox..Но что-то работает не так как нужно (исключается только одно число из Combobox). В чём проблема?
[vba]
Код
Private Sub UserForm_Activate() For i = 0 To 31
For j = 6 To 500 If Range("A" & j).Value = "Совпадение" Then chislo = Range("B" & j).Value Next
If chislo <> i Then Spisok.AddItem i Next
End Sub
[/vba] [moder]Дайте теме более конкретное название.[/moder]Vladimir113
Сообщение отредактировал Manyasha - Пятница, 22.01.2016, 15:01
Хоть ответ и не очень конкретен, но все равно удален администрацией. Косяк, указанный в комментарии модератора, не исправлен. [p.s.]Без файла разбираться в чужом коде довольно муторно.
Хоть ответ и не очень конкретен, но все равно удален администрацией. Косяк, указанный в комментарии модератора, не исправлен. [p.s.]Без файла разбираться в чужом коде довольно муторно.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Добавил файл с этой задачкой. Задача всё та же - убрать цифры из Combobox после добавления на форму (сейчас удаляется только последняя)... В своём коде в упор не вижу ошибки, хотя она там есть Может кто-то предложит альтернативный вариант решения. Буду признателен за помощь.
п.с. модератор, прошу прощения, но я почему то не наблюдаю возможности поменять тему топика. [moder]Вы могли это сделать в течение суток после публикации, а теперь предложите название в посте, я переименую[/moder]
Переименуйте, пожалуйста. - "Удаление элемента из Combobox после добавления на лист"
Добавил файл с этой задачкой. Задача всё та же - убрать цифры из Combobox после добавления на форму (сейчас удаляется только последняя)... В своём коде в упор не вижу ошибки, хотя она там есть Может кто-то предложит альтернативный вариант решения. Буду признателен за помощь.
п.с. модератор, прошу прощения, но я почему то не наблюдаю возможности поменять тему топика. [moder]Вы могли это сделать в течение суток после публикации, а теперь предложите название в посте, я переименую[/moder]
Переименуйте, пожалуйста. - "Удаление элемента из Combobox после добавления на лист"Vladimir113
Private Sub UserForm_Activate() For i = 0 To 31 flag = 0 For j = 1 To 500 If Range("A" & j).Value = "Совпадение" And i = Range("B" & j).Value Then flag = 1 Next If flag <> 1 Then Spisok.AddItem i Next End Sub
[/vba]
Попробуйте такой вариант [vba]
Код
Private Sub UserForm_Activate() For i = 0 To 31 flag = 0 For j = 1 To 500 If Range("A" & j).Value = "Совпадение" And i = Range("B" & j).Value Then flag = 1 Next If flag <> 1 Then Spisok.AddItem i Next End Sub