Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508

Формирование содержания массива с листа

01.04.2016, 09:43. Показов 904. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день .
На листе1 имеется таблица цветов(469 цветов).В коде программы используется массив со значениями кодов всех цветов.Однако каждый раз мне необходим массив не всех цветов,а только тех,которые определяются в таблице2.Подскажите пожалуйста быстрый способ формирования данных из ячеек листа (столбец L) в тело массива в VBA.
Сейчас я копирую массив из VBA и вставляю на лист,где произвожу ввод нужных кодов вручную.Затем все это копирую обратно в код.Можно-ли это как-то автоматизировать.
Файл прилагаю.
Вложения
Тип файла: xls Пример.xls (87.0 Кб, 7 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.04.2016, 09:43
Ответы с готовыми решениями:

Формирование массива с листа. Исправить код
На рабочем листе есть массив-строка С(5,1,1,7,1,21,1). Из него формируется новый квадратный массив. В приведенном коде все элементы нового...

Автоматическое формирование содержания для нескольких Word документов
при создании макроса у меня появляется Application.Templates( _ "C:\Users\alekseev\AppData\Roaming\Microsoft\Document Building...

Цикл FOR, формирование содержания с другого КФ
Задачка: Создать командный файл с именем «Свое_имя.bat». В данном файле прописать команды для вывода текстового сообщения «параметр вызова:...

10
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
01.04.2016, 10:15  [ТС]
Код нужен для 2007.Просто на работе 2003 стоит,поэтому и пример в нем.
Пробовал копировать из ячеек в блокнот.Но там появляются лишние пробелы табуляции.А при разложении строки по столбцам исчезают запятые.
0
Заблокирован
01.04.2016, 10:57
Цитата Сообщение от OLEGOFF Посмотреть сообщение
быстрый способ формирования данных из ячеек листа (столбец L) в тело массива в VBA
чем не устраивает это -
Visual Basic
1
RGBConstantColorRaduga = Range([L2], [L2].End(xlDown)).Value
?
0
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
01.04.2016, 11:14  [ТС]
Shersh, мне нужен именно массив,т.к. он затем используется в дальнейших расчетах в виде функции.И завязан с другими функциями. Я в VBA не силен,но попробую.Просто при постоянном обращении к Range замедляется работа.
Подробности применнения находятся в теме
Задать имя цвета из библиотеки цветов
Просто при обращении ко всему массиву цвета мне не хватает памяти для обработки более 250х120 ячеек.

Добавлено через 6 минут
Может я немного не так описал задачу?
Необходимо по столбцу L составить текст (массив) хоть в блокноте,хоть на листе который я мог бы просто скопировать в код .
0
Заблокирован
01.04.2016, 11:38
OLEGOFF, сдается мне, что вы решаете задачу через одно место не с того конца...

Visual Basic
1
2
3
4
5
6
a = Range([L2], [L2].End(xlDown)).Value
ReDim b(LBound(a, 1) To UBound(a, 1))
For i = LBound(a, 1) To UBound(a, 1)
  b(i) = a(i, 1)
Next
Debug.Print Join(b, ",")
и копируйте куда хотите
1
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
01.04.2016, 11:46  [ТС]
Shersh,
Цитата Сообщение от Shersh Посмотреть сообщение
через одно место
это может быть,буду разбираться.
Спасибо за советы
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
01.04.2016, 11:47
Можно код и короче:
Visual Basic
1
2
    a = Application.Transpose(Range([L2], [L2].End(xlDown)).Value)
    Debug.Print Join(a, ",")
1
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
01.04.2016, 11:58
Да обычно на практике и двумерный массив ничуть не хуже, незачем транспозу мучить... Чуть дальнейший код скорректировать и всё.
Тем более что в старых версиях эта транспоза глючила на больших объёмах (начиная уже с 2000 элементов)
0
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
01.04.2016, 12:04  [ТС]
Извините ребята,не нашел откуда копировать?
0
Заблокирован
01.04.2016, 12:15
Цитата Сообщение от OLEGOFF Посмотреть сообщение
не нашел откуда копировать?
CTRL+G
1
 Аватар для OLEGOFF
1082 / 523 / 141
Регистрация: 27.02.2013
Сообщений: 1,508
01.04.2016, 12:19  [ТС]
Спасибо всем.Разобрался.
Просто этот массив применяется параллельно еще в двух программах.Поэтому и надо было через бубен сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2016, 12:19
Помогаю со студенческими работами здесь

Формирование прайс-листа
Всем привет. Задача. Сделать прайс-лист с категориями и подкатегориями. Т.е по-умолчанию, все категории свернуты. При клике на...

Формирование листа настройки
помогите решить две задачи. 1.Ситуация есть прайсы находящиеся на винте. в листе настройка по кнопке импорт подключаем прайс а...

Формирование итогового листа в Excel
Очень нужно решить вот такую задачу. Есть форма первичного документа – путевой лист грузового транспорта (распечатывается на листе формата...

Поиск данных по БД и формирование прайс-листа
Ребятушки, совсем ничего не понимаю!!! надо сдать курсовую! курсовая уже сделана! в готовой базе данных нужно прописать поиск...

Как создать коэффициент в ячейке листа, чтобы каждое новое значение меняло значение массива только в одной строке листа?
Дано: Имеется массив, расположенный на листе Excel 2010 в стлбце. Каждое число массива умножается на переменный коефициент, который...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru