|
|
|
Код в VB - работа с массивом
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, решение одного вопроса: в файле А есть несколько рабочих листов, каждый из которых представляет счет. В другом файле (Б) указана номенклатура. Надо чтобы программа по номеру инвойса перенесла номера товара и кол-ва в файл Б. Особенность заключается в том, что в одном и том же счете может быть несколько строк по одному товару. Еще одна закавыка - в структуре файла Б. Пример вложен. Надо чтобы программа не записала информацию поверх существующей и т.д. Написал код, но не работает. Код: plaintext 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. используйте тег SRC для форматирования кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 21:03:00 |
|
||
|
Код в VB - работа с массивом
|
|||
|---|---|---|---|
|
#18+
если хотите получить помощь, то приложите все файлы и опишите детально, как должна работать программа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2007, 10:50:45 |
|
||
|
Код в VB - работа с массивом
|
|||
|---|---|---|---|
|
#18+
Хорошо. Попробую разъяснить (кое-что уже сам сделал). Есть два файла - в файл "Инвойсы" оператор вводит данные по товарам - номер детали и кол-во. Файл "Поставки" служит базой статистики и используется для накопления данных. Трудность заключается в том - что в инвойсе могут быть несколько строчек по одному товару. Поставщика не убедить следовать правилу 1 товар = 1 строка в инвойсе. У меня следующая идея - из файла "Поставки" запускаю макрос, который по номеру инвойса в файле "Инвойсы" находит нужный рабочий лист, потом по данным этого листа со строк 33 по 147 формирует массив данных (номер детали, кол-во), потом опять переходит в файл "Поставки", ищет по номеру детали нужную, проверяет есть ли в строке что-либо (если есть - строка занята, переходит на следующую), и вставляет данные - номер инвойса, дату и кол-во. Как же сделать чтобы несколько строк из массива данных посвященных одной детали вставлялись одной строкой, при том что кол-во суммировалось? Подскажите пожалуйста. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2007, 13:34:29 |
|
||
|
Код в VB - работа с массивом
|
|||
|---|---|---|---|
|
#18+
можно сделать по разному: сделать двумерный массив или использовать Dictionary и суммировать в нем по каждому ключу, т.е. номеру товара, а потом переносить уже суммированные значения. А можно сначала составить массив номеров товаров, потом использовать функцию листа: Код: plaintext 1. 2. 3. как использовать эту функцию - ищи в помощи самого Excel, а не VBA SumIf или СуммЕсли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2007, 16:04:48 |
|
||
|
Код в VB - работа с массивом
|
|||
|---|---|---|---|
|
#18+
Про двумерный массив можно по-подробней и на примере если это возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2007, 20:06:02 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34696809&tid=2182503]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 321ms |

| 0 / 0 |
