Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 17

Вставка и обработка данных в массиве

15.11.2013, 22:38. Показов 2348. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Прошу помощи или совета.

Исходные данные
1) эксель таблица, где есть ОДНА ячейка с данными: золото; черный; прозрачный (или другими данными например, 10, 20, 30). Значения разделены между собой знаком ; или ,

2) мне нужно чтобы при нажатии на кнопку, макрос считывал эту одну строчку с данными.
3) далее отделил каждое значение друг от друга в простой массив
4) вывел данные из массива в другую ОДНУ ячейку вида
"текст + значение из массива №1" далее перевод каретки
"текст + значение из массива №2" далее перевод каретки
"текст + значение из массива №3"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2013, 22:38
Ответы с готовыми решениями:

Обработка формы выбора и вставка данных в БД
Добрый день, подскажите как корректно обработать форму табелирования. <form action='' method='POST'> <input type='submit'...

Обработка данных в одномерном массиве
Среднее арифметическое элементов, расположенных между первым и последним четными элементами. min (b1,...,bk) для bi>X думаю что это...

Обработка события Click, вставка html после генерации и обработка этого кода
Подскажите пожалуйста как заставить работать эту часть кода 18 строка $(".image").click(function() { ...

29
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.11.2013, 02:03
Студворк — интернет-сервис помощи студентам
To Hugo. В первом примере названия цветов (после обработки) ТС дал в верхнем регистре (пост#3), а начальные были в нижнем. Вот я и добавил UCase.
Но что такое это: "|0|+|0.0000|+|0|+|0.00000000|1"? Я ничего не могу понять.
И почему значение ячейки "i12"
оранжевый, золото, черный, прозрачный, золото, черный, прозрачный , золото, черный, прозрачный
Что значат эти все повторы?
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
16.11.2013, 02:11
Или может так нужно
Visual Basic
1
2
3
4
        For Each el In arr
            s = s & vbLf & "Цвет|" & UCase(el) & "|0|+|0.0000|+|0|+|0.00000000|1"
        Next
        a(i, 1) = Mid(s, 2)
Вот так результат точно как в Вашем варианте.

Добавлено через 3 минуты
Привет, Игорь!
Да в общем не суть - можно легко нарисовать как нужно, алгоритм менять не нужно.
А если нужно убрать повторы - можно сперва массив через коллекцию прогнать.
Да, я там ещё упустил трим:
Visual Basic
1
UCase(Trim(el))
Вот так нужно.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.11.2013, 02:14
Но что это такое?
"|0|+|0.0000|+|0|+|0.00000000|1"

Добавлено через 1 минуту
Здравствуйте! (Забыл поздороваться). Я не могу понять цель всего этого...
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
16.11.2013, 02:16
Ну какая-то практическая цель есть. Не то что у квадрата сумм главной диагонали
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.11.2013, 03:03
Ну да... Иногда торговцев не понять. Если не понимаю цель - для меня пустая трата времени.

Добавлено через 24 минуты
Получается, что к каждому факт. названию цвета добавляется просто одна и та-же фраза в начале и в конце:
"Цвет" & факт.цвет & "|0|+|0.0000|+|0|+|0.00000000|1".
Шпионский код какой-то
Тогда можна просто взять за основу фразу "Цвет |0|+|0.0000|+|0|+|0.00000000|1" и вставлять туда цвет.
Что-то типа:
mSTR="Цвет |0|+|0.0000|+|0|+|0.00000000|1"
mSTR= Replace(mSTR, Space(1), Space(1) & el & Space(1), 1, 1)

Ничего не понимаю
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 17
16.11.2013, 11:30  [ТС]
Цитата Сообщение от Igor_Tr Посмотреть сообщение
Но что это такое?
"|0|+|0.0000|+|0|+|0.00000000|1"

Добавлено через 1 минуту
Здравствуйте! (Забыл поздороваться). Я не могу понять цель всего этого...
Добрый день. Не вдавайтесь в подробности про эти нули. Это поосто специальный формат для магазина и для vba посто текст и ничего большего.

Добавлено через 1 минуту
Цитата Сообщение от Igor_Tr Посмотреть сообщение
Ну да... Иногда торговцев не понять. Если не понимаю цель - для меня пустая трата времени.

Добавлено через 24 минуты
Получается, что к каждому факт. названию цвета добавляется просто одна и та-же фраза в начале и в конце:
"Цвет" & факт.цвет & "|0|+|0.0000|+|0|+|0.00000000|1".
Шпионский код какой-то
Тогда можна просто взять за основу фразу "Цвет |0|+|0.0000|+|0|+|0.00000000|1" и вставлять туда цвет.
Что-то типа:
mSTR="Цвет |0|+|0.0000|+|0|+|0.00000000|1"
mSTR= Replace(mSTR, Space(1), Space(1) & el & Space(1), 1, 1)

Ничего не понимаю

Верно просто факт добавления одной и тойже фразы в начале и конце цвета.

Добавлено через 7 минут
Цитата Сообщение от Hugo121 Посмотреть сообщение
Можно конечно попроще:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub CommandButton3_Click()
    Dim ra As Range, a, i&, arr, el, s$
 
    Set ra = Range([I2], Range("I" & Rows.Count).End(xlUp))
    a = ra.Value
    For i = 1 To UBound(a)
        a(i, 1) = Replace(a(i, 1), ";", ",")
        arr = Split(a(i, 1), ",")
        s = vbNullString
        For Each el In arr
            s = s & vbLf & "Цвет|" & el & "|0|+|0.0000|+|0|+|0.00000000|1"
        Next
        a(i, 1) = UCase(Mid(s, 2))
    Next
    ra.Offset(, 1) = a
End Sub
Только из проверок оставил обработку и "," и ";".

Ваше
With ActiveSheet
совершенно ни к чему и ничего не делает...

А зачем там UCase()? Точно нужно? Но впрочем всё равно...
А можете дать комментарии к строкам, очень хочется понять как работает скрипт.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.11.2013, 16:10
Тогда просто для меня, пожалуста. Почему в "i12" все по три раза (оранжевый, золото, черный, прозрачный, золото, черный, прозрачный , золото, черный, прозрачный)? Просто интересно. Нельза там "оранжевый, золото3, черный3, прозрачный3", или что-то в таком роде? Я, например, это сразу принял как какую-то опечатку.
0
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 17
16.11.2013, 21:16  [ТС]
Цитата Сообщение от Igor_Tr Посмотреть сообщение
Тогда просто для меня, пожалуста. Почему в "i12" все по три раза (оранжевый, золото, черный, прозрачный, золото, черный, прозрачный , золото, черный, прозрачный)? Просто интересно. Нельза там "оранжевый, золото3, черный3, прозрачный3", или что-то в таком роде? Я, например, это сразу принял как какую-то опечатку.

да я просто вставил несколько значений через запятую, чтобы проверить функционал
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.11.2013, 22:44
Сбиваете с толку, понимаешь... Лучше давать абстрактно, но макс. реально к жизни. А то я не понял, может лекарства какие-то...
Если Hugo121 молчит - раскидаю. По строкам.
4. Определили диап-н ra.
5. В массив a - все значения из ra.
7. В массиве a, для очередного значения, принудительно замена ";" на "," (я определял как myDelimiter, и ничего не менял. У него лучше - не нужна переменная myDelimiter).
8. В новый (промежуточный) массив arr все значения очередной строки.
9. Обнуление текстовой пер-й s
11. Внутр. цикл. Формируется строка s с символом новой строки.
13. Запись этой строки без первого символа переноса в массив a с очередными индексами.
15. В диапазон ra, с отступом на один столбец, перезаписывается массив а.
И все.
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 17
16.11.2013, 22:50  [ТС]
Цитата Сообщение от Igor_Tr Посмотреть сообщение
Сбиваете с толку, понимаешь... Лучше давать абстрактно, но макс. реально к жизни. А то я не понял, может лекарства какие-то...
Если Hugo121 молчит - раскидаю. По строкам.
4. Определили диап-н ra.
5. В массив a - все значения из ra.
7. В массиве a, для очередного значения, принудительно замена ";" на "," (я определял как myDelimiter, и ничего не менял. У него лучше - не нужна переменная myDelimiter).
8. В новый (промежуточный) массив arr все значения очередной строки.
9. Обнуление текстовой пер-й s
11. Внутр. цикл. Формируется строка s с символом новой строки.
13. Запись этой строки без первого символа переноса в массив a с очередными индексами.
15. В диапазон ra, с отступом на один столбец, перезаписывается массив а.
И все.
спасибо большое, теперь пойду имея описания читать про применяемые операторы
в следующий раз буду высылать информацию всю как есть. еще раз огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2013, 22:50

Вставка кода и его обработка
я тут первый раз так что не пинайте вот откопал с другого сайта код Код JavaScript (вставлять между тегами <head> и...

Обработка и вставка из буфера обмена
Здравствуйте. Столкнулся с такой проблемой, не могу решить, прошу помочь с кодом. Есть сайт myscore.ru, я копирую от туда данные с...

Обработка изображения. Вставка своего кусочка в рисунок
Привет. Кто нить знает как сделать чтобы на рисунок наложился другой рисунок. Нужно для того чтобы на образцах была информация в углу....

Вставка данных в Вордовский документ из базы данных или таблицы Аксесс
доброго времени суток. Помогите решить задачу: хочу сделать базу данных и вставлять в текст вордовского документа данные из нее!...

Удаление и вставка элементов в массиве
Дан массив размера N и целое число K (1<K<N). Удалить из массива элемент с порядковым номером K Заранее спасибо


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru