|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
Всем доброго дня! Задача - выводить на userform в ListBox1 только те значения который он не найдет в диапазоне ячеек на листе в Excel. Таким образом в ListBox1 остаются только те значения, которых нету в ListBox2. А в listbox2 отображается все то что есть в списке Excel. Я что-то реально туплю и не могу сообразить, как бы это написать. Как сравнить списки? Потом нужно продумать, как сохраняя общий порядок каналов из ListBox1 заполнять ListBox 2, перенося в него значения из Listbox1 То что имею на данный момент: Код: 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.
Я прикрепляю файл, для удобства понимания задачи. Там оставил основное, список каналов, к которым я должен добавить то, чего не хватает, но это есть в ListBox1 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2015, 17:14 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
При таком назначении списка значений сделать это будет невозможно Для списка 2 нужно назначать не ссылку на источник строк, а непосредственно список Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 14:47 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
alex77755, Я кое что смог сделать. Я завел два массива, на каждый список свой. Однако у меня очень забавная история получается, у меня по проверки через MsgBox занесенных данных в массив перечисляются правильные значения, а в итоговым списке (ListBox2), выдаются немного измененные значения. По окончанию объявления MsgBox можно будет увидеть, что в списке Listbox2 отсутствую каналы (Россия 24, НТВ, ТНТ, СТС-Лов, перц). Куда они могли пропасть? Прикрепляю файл для того что бы можно было самому наглядно это увидеть. Я честно не очень понимаю с чем такое может быть связано... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 12:19 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
lopuxi, Все, я разобрался. Просто в Lisbox2 стоял не тот массив :-) ыть.. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 12:33 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
Запаролся... :( Помогите составить такое условие, имея два массива, которые нужно друг с другом сравнить. И если в одном массиве, нету некоторых значений, то выдать в listbox1 каких именно значений он не нашел. Иным словом, в первом списке мы имеем Первый, Россия 1, НТВ. И сравниваем его со вторым списком, где есть Первый, Россия 1. То listBox1 нам должен отразить только НТВ. А ListBox2 тем временем выдаст Первый, Россия 1 Я прикрепляю файл. Весь код, выглядит так: Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 15:56 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
lopuxi, так? Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 17:40 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
VSVLAD, Да, это то что нужно. Я правильно понял как, это работает? Когда мы в данном цикле, находим совпадение, мы выходим из цикла. Код: vbnet 1. 2. 3. 4. 5. 6.
Выйдя из цикла, у нас включается bChannelFound = true и таким образом срабатывает условие и мы заносим найденное из массива значение. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 10:34 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
lopuxi, грубо так: 1) Берём элемент из первого списка, флажок ставим в выключенное состояние 2) Сравниваем его с каждым элементом из второго списка 3) Если нашли совпадение, поднимаем флажок , и выходим из внутреннего цикла (дальше нет смысла проверять) 4) Далее выходим из внутреннего цикла (Все элементы обошли или вышли досрочно) 5) Сраниваем был ли поднят флажок, а он может быть поднят, только если во втором списке было найдено совпадение, и если он не поднят , а равно элемент из первого списка отсутствует во втором списке, то добавляем этот элемент "туда-то" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:10 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
6) Далее берём следующий элемент из первого списка, флажок ставим в выключенное состояние и на пункт 2. Всё ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:11 |
|
Сравнить список из ListBox со списком в Excel
|
|||
---|---|---|---|
#18+
VSVLAD, И еще возник в последствии такой вопрос. Если я обладаю номером массива iArray. То соответственно я могу использовать номер нужного мне элемента в массиве, так что бы сохранить порядок и добавить недостающий мне канал из ListBox1 в LisBox2. К примеру: в listbox1 у меня есть значение (3) В listbox2 у меня есть значения (1,2,4) Моя задача, добавить в ListBox2 значение 3, сохранив порядок 1,2,3,4. То есть, зная что 3 > чем 1, 2 но меньше 4. Значит встать оно должно между 2 и 4. Как то так. Я просто со списками ListBox1 очень мало имел дело. Материал который я нашел интернете не помог мне разобраться. Но продолжаю разобраться и в данный момент, может что-то успею понять разобрать, до того как будет ответ тут. А пока высылаю то что имею: (данный код это продолжение того кода, что ранее уже публиковался в данной теме) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:16 |
|
|
start [/forum/moderation_log.php?user_name=%D0%93%D1%80%D0%B5%D0%BA%D0%B0+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82+%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B9+%D0%BE%D1%82%D0%B2%D0%B5%D1%82]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 1813ms |
total: | 1966ms |
0 / 0 |