|
|
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
Имеется множество одинаковых пар листов Excel с идентичным прогр кодом. Естественно, все переменные - private, во избежание конфликта имен. В кодах листов определены массивы определенной пользователем переменной, с кот, кстати, производится операция Redim, т.е. изменяющегося размера. Для управления листом из него создается форма, кот. читает БД и должна писать в этот приватный массив рез-ты запроса к БД. Вопрос такой, - как передать ссылку на такой приватный массив в форму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 14:38:14 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
PS. Сейчас делаю это через Public функцию в листе, однако, в этом случае приходится менять прогр код в листах типа ListName.PublicFunction(.......). Т.е. код в листах теряет идентичность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 14:51:03 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
Попробуй так: в модуле Листа 1 Код: plaintext 1. 2. в модуле Листа 2 Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 15:44:10 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
Я уже так делаю, нмного иначе. Лист1 Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. StringName="List1" Sheets(StringName). Sub1 и выполняется функция нужного листа. Для массива мне это не нравится, его приходится без конца копировать циклом через функцию и это достаточно тягомотно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 16:56:37 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
YUBA... Для массива мне это не нравится, его приходится без конца копировать циклом через функцию и это достаточно тягомотно. Функция или Ваш Sub1 не может вернуть массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 17:13:59 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
без копирования массива не знаю как. 1. Функция не может возвращать массив. Далее Лист1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. Массивы большие, и копирование занимает много времени. Нужно организовать ссылку на приватный массив из 1-го листа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 19:14:23 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
Строка Код: plaintext 1. Код: plaintext 1. Нужно сразу писать в приватный массив в Sub ReadDB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 19:23:35 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
Ну, вроде сделал. List1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. [/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 20:22:18 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
YUBAбез копирования массива не знаю как. 1. Функция не может возвращать массив. YUBA, вы это опытным путем определили или прочитали где-то? ;-) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Из обрывков, которые вы показываете трудно извлечь нужную информацию, но у меня подозрение, что ваш код работающий с массивами сильно улучшаем. А какой смысл копировать из массива в массив с помощью цикла, если это все равно запрос SQL? Или у вас там еще какой отсев идет? Массив на другом листе - это диапазон? В Диапазон тоже циклом копируете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 00:00:59 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
Массив - это массив. Диапазон - это диапазон. Данные из массива на лист в чистом виде не попадают. В общем, эта задача уже решена, решение в предыдущем посте. Кстати покажите, как функция массив может вернуть. Я такого не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 15:06:03 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
YUBAМассив - это массив. Диапазон - это диапазон. Данные из массива на лист в чистом виде не попадают. В общем, эта задача уже решена, решение в предыдущем посте. Кстати покажите, как функция массив может вернуть. Я такого не знаю. Легко! Код: 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. И если можно - услуга за услугу: что тогда такое "массив на др листе" и почему он копируется циклом, а не arrData=Range("A1:A10").Value ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 18:14:23 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
KL (XL)И если можно - услуга за услугу: что тогда такое "массив на др листе" и почему он копируется циклом, а не arrData=Range("A1:A10").Value ? Спасибо за код. не думал, что такое возможно без указателей. Массив на др. листе - это просто, м.б. некорректно выразился. Лист содержит VB код и в нем определен массив, в нашем случае User Defined Type Private MyArr() as Mytype. В ячейки листов данные из него попадают после обработки, задаваемой пользователем из формы. Там-же формируется и запрос к БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 19:22:04 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
KL (XL), что-то не работает, однако Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2009, 20:19:42 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#18+
KL (XL), Вот в таком виде все действительно дышит, но д.б. определено через Variant Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2009, 20:45:07 |
|
||
|
Передача приватного опред пользователем массива
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2009, 20:46:20 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36101378&tid=2179252]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 531ms |

| 0 / 0 |
