|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.08.2014, 11:41 | #1 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Ошибка преобразования массива в строку
Имеется таблица "Лист1" в первой колонке три значения "AAA", "BBB" и "CCC".
Надо скопировать их в массив arr(), показать значения элементов этого массива, и поместить их в другие ячейки "B4", "B5", "B6". Код:
Код:
Код:
а попытка преобразования его элементов в строку через Join() Код:
Однако, если вставить значения элементов массива в ячейки Range("B4:B6"), Код:
Что за чертовщина и как в VBA можно вывести элементы массива, как строки? И как вообще правильно копировать данные из диапазона ячеек в одномерный массив и обратно? Может, вся проблема в неправильном копировании в массив? Спасибо! |
20.08.2014, 11:59 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
ReDim arr(1 To lastRow) ' переопределяю размер массива - лишнее. И ошибочное.
А все ошибки потому, что это двумерный массив!
webmoney: E265281470651 Z422237915069 R418926282008
|
20.08.2014, 12:01 | #3 | |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Цитата:
И откуда он двумерный, если используется только один ряд значений? Ничего не понимаю... Последний раз редактировалось Debauchee; 20.08.2014 в 12:06. |
|
20.08.2014, 12:10 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Вообще не нужно.
А если будете использовать 10 рядов - будете десятимерный массив городить? И вообще там не ряд, а столбец. Где у каждого элемента 2 координаты! И зачем Вам одномерный массив? Используйте как есть двумерный, будьте проще
webmoney: E265281470651 Z422237915069 R418926282008
|
20.08.2014, 12:18 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
20.08.2014, 12:19 | #6 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Мрачно...
Где же тут проще? Если я хочу "упаковать" элементы массива в строку с разделителями, а join() не поможет, то без цикла не обойтись? А есть ли в VBA какая-нибудь функция, наподобие var_dump() или print_r() в РНР, которая позволит посмотреть дамп массива? Последний раз редактировалось Debauchee; 20.08.2014 в 12:24. |
20.08.2014, 12:24 | #7 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Спасибо, IgorGO!
Красивое решение! Dim arr - это объявление не массива, а просто переменной (as Variant), т.е. получается, что и массива тоже? |
20.08.2014, 12:26 | #8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
в редакторе VBA жмём View - Locals Window
в коде, в том месте где надо остановиться и посмотреть содержимое массива, добавляем строку STOP и смотрим, что у нас там во всех переменных (в т.ч. в массиве) |
20.08.2014, 12:35 | #9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
И что же решил Игорь?
И зачем нужно строка? Если нужна - ну и соберите её циклом по массиву - ничего сложного, чуток букв написать... А вообще преобразовать из двумерного в одномерный можно транспонированием. Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 20.08.2014 в 12:39. |
20.08.2014, 12:45 | #10 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Спасибо, EducatedFool!
Почти удобный способ |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Преобразования числа в строку | Alexandr17 | Общие вопросы Delphi | 12 | 26.07.2014 11:56 |
Проблема с кодом в Pascal: ошибка преобразования типа byte к string | THE LOGOS | Помощь студентам | 16 | 14.01.2014 21:38 |
Конструктор,метод вывода на экран Display, метод для преобразования в строку toString в Delphi | Чумак Татьяна | Помощь студентам | 6 | 03.04.2012 11:58 |
Алгоритм преобразования элементов массива | Alexander4321 | Помощь студентам | 1 | 28.11.2010 15:55 |
Ошибка преобразования кодировки | ipdd | Помощь студентам | 3 | 30.09.2010 11:07 |