|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|||||||||||
Ошибка при разбиении текста на символы (на вход данные из Excel)13.08.2012, 10:22. Показов 3570. Ответов 22
Метки нет (Все метки)
Пишу макрос для заполнения документа и для заполнения полей, разбитых на клетки, решил провести посимвольное заполнение.
Но при выполнении программы получаю ошибку Invalid qualifier с указанием на переменную value. Подпрограмма для разбиения полученного содержимого ячеек на необходимое количество частей:
полный код.
За основу взят вполне рабочий макрос из интернета. Добавлено через 9 часов 26 минут Поправка. Ошибка указывает на переменную volume.
0
|
|||||||||||
| 13.08.2012, 10:22 | |
|
Ответы с готовыми решениями:
22
Ошибка при разбиении Acronis'ом : как восстановить данные?
|
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|
| 13.08.2012, 11:19 [ТС] | |
|
Предполагалась volume.
Исправил, но всё также получаю ошибку в volume.ToCharArray с указанием на переменную.
0
|
|
|
Супер-модератор
|
||||||
| 13.08.2012, 11:27 | ||||||
1
|
||||||
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|
| 13.08.2012, 11:29 [ТС] | |
|
Хм, вот как.
Тогда каким образом можно получить отдельные символы из строки, чтобы потом поместить в массив?
0
|
|
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
||||||
| 13.08.2012, 11:55 [ТС] | ||||||
|
Благодарю. То, что надо.
А знак процентов указан просто для отличия от других переменных или это какой-то особый элемент синтаксиса? Теперь говорит о несовпадении типов в строке:
0
|
||||||
|
Супер-модератор
|
||||||
| 13.08.2012, 11:59 | ||||||
|
Знак процента указывает на то, что переменная имеет тип Integer.
А оператор FindText(j) = "{" + mark + j + "}" лучше записать так:
1
|
||||||
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|
| 13.08.2012, 14:45 [ТС] | |
|
Хм, насколько понял, действия из подпрограммы x() не отражаются на массивах ReplaceText() и FindText().
Нумерация ячеек правильная (во всех случаях, где не требуется вызов x() всё проходит нормально). Как понял, что-то не так в объявлении переменных, но что именно понять не могу. В подпрограмме переобъявляю массивы всё тем же ReDim. Основная программа без изменений.
0
|
|
|
Супер-модератор
|
|||||||
| 13.08.2012, 15:52 | |||||||
1
|
|||||||
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
||||||
| 13.08.2012, 17:17 [ТС] | ||||||
|
Отлично! Заработало.
Насколько понимаю, последняя проблема.
Размер массива фиксированный - 30. На этом шаге volume содержит слово из 5 русских букв, u%=3. Добавлено через 36 минут Ах да, полный текст сообщения: Subscript out of range.
0
|
||||||
|
Супер-модератор
|
|
| 13.08.2012, 18:23 | |
|
1. Я бы вставил процент вот сюда: ReplaceText(u%) = Mid$(volume, u%, 1)
2. Если не поможет, проверьте, сколько символов в строке "volume". Если больше 30 - все понятно. Сообщение "Subscript out of range (9)" - означает выход индекса за границу описания (как в большую, так и в меньшую сторону)
1
|
|
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
||||||
| 13.08.2012, 19:06 [ТС] | ||||||
|
1. Исправлено.
2. В строке 5 символов. Больше 30 там быть не может в принципе. Появилось подозрение, что переопределять массивы с указанием размера стоит также вне процедур, но интерпретатор считает это плохой идеей. Быть может, всё дело действительно в этом?
0
|
||||||
|
Супер-модератор
|
|
| 13.08.2012, 19:35 | |
|
Когда возникнет ошибка - нажми "Отладка" и посмотри, что в u%, чему равно volume и верхнюю границу RepaceText. Для этого в окне отладки выполни Debug.print Ubound(RepaceText,1)
0
|
|
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|
| 13.08.2012, 19:59 [ТС] | |
|
Как было сказано выше, u& = 3, volume = "Суфия".
Только не понял, что означает "выполнить в окне отладки". В смысле, куда его вставлять?
0
|
|
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|
| 13.08.2012, 20:37 [ТС] | |
|
Полезная вещь. Надо будет побольше погуглить по этой теме.
Похоже, после ReplaceText() = Split, размер массива сокращается до 2. Поставил переопределение перед последующими разбиениями-заполнениями, теперь работает. Огромнейшая вам благодарность. Теперь обнаружилась ошибка с адресаций ячейка-метка, но, думаю, с этим я и сам справлюсь.
0
|
|
|
7 / 7 / 0
Регистрация: 13.08.2012
Сообщений: 250
|
|
| 13.08.2012, 21:33 [ТС] | |
|
Опаньки, оказывается, ReplaceText(u%) = Mid$(volume, u% + 1, 1) возвращает пустую строку вместо цифр.
0
|
|
| 14.08.2012, 08:14 | |
|
0
|
|
| 14.08.2012, 08:14 | |
|
Помогаю со студенческими работами здесь
20
Ошибка при разбиении на страницы
Ошибка при разбиении программы на файлы(модули) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|