Excel введена слишком длинная текстовая строка
Всем привет, сегодня снова работаем с эксель таблицей и шаблоном в ворд, в этом видео я вам покажу как работать с большим текстом, если у нас допустим, в нашей ячейке будет содержаться текста значительно больше чем 255 символов.
Давайте возьмём пример из первого видео, перейдете по ссылке в описании на странице есть файл в архиве.
Давайте сделаем так что у нас в заголовке таблицы будет не адрес, а текст для примера. Будем практиковаться на основе ячейки C2 .
Давайте сделаем проверку длинны текста в ячейке, используя функцию ДЛСТР - длина строки. У нас здесь сейчас находится 15 символов.
Сделаем больше текста для этого я в Microsoft Word используя функцию LOREM() , которая сформирует случайный текст.
Теперь я скопирую текст, нужен будет блокнот, вставлю текст из буфера обмена, уберу лишние отступы переносы.
Давайте посмотрим какой длины у нас получится сейчас этот текст. Так вот у нас даже не помещается текст на экране, поправим таблицу. Длина текста в ячейке 598 символов с пробелами.
Давайте перейдём в Редактор Visual Basic, alt+f11 и посмотрим код прошлого примера.
Исправим название переменной адрес на текст, здесь исправим на текст и посмотрим что у нас получится.
Теперь откроем шаблон и заменим Адрес на Текст и исправим конструкцию для замены на &text .
Сохраним, закроем все лишнее, совместим для наглядности эксель файл и папку для вывода ворд файлов.
Посмотрим, что теперь получится, изменю масштаб, для доступа к кнопке запуска макроса.
Появляется ошибка № 5854 - слишком длинный строковый параметр.
И хотя бланк сформировался, произошло не то что ожидалось, ID вывели, серийный номер не изменился, потому как по коду данного макроса, мы не дошли до номера мы остановились вот здесь, ошибка произошла выше.
Давайте откроем диспетчер задач, существует проблема которую мы сейчас решим, иначе у нас при любой ошибке в работе макроса в Диспетчере задач в фоне остается запущен экземпляр Microsoft Word в котором рухнул наш шаблон.
Давайте ещё раз попробуем сформировать посмотрим, что у изменится.
Опять ошибка, и сейчас в Диспетчере задач повис Microsoft Word, его нужно закрыть и так придется делать постоянно, будем снимать задачу иначе будут появляться новые ошибки.
Давайте теперь сделаем выход из нашей функции, где мои работаем, здесь у нас создание файла проходит нормально, этот кусок у нас нормально отрабатывает.
Вставим вот здесь следующий код:
Это у нас метка перехода, если произойдет ошибка, мы перейдём в конец модуля, вот здесь мы сделаем Exit Sub - Выход из модуля.
Ниже напишем ErrorHandler: наша метка и здесь нам нужно будет вставить код сохранения, закрытия и выхода из Word.
Вот теперь мы избавимся проблемы, когда у нас будет зависать в Диспетчере задач Microsoft Word, который мы не успеваем закрыть.
Сейчас мы исправим эту проблему, кстати гляну в диспетчер задач у нас Microsoft Word нигде не висит, и он нам не мешает. OK.
Теперь снова перейдём в редактор VBA. и разобьем переменную Text$ на фрагменты допустимой длины.
Ну кроме исправлю маленькую опечатку, тут естественно должен быть &text .
Дайте я посмотрю, что изменится, хотя даже если мы исправили это значение, всё равно ничего не получилось.
Теперь удалим снова бланк, вернемся вот сюда, зададим переменную temp равно Left возьмём от переменной Text$ 255 символов, снова создадим переменную temp2, воспользуемся теперь функцией Mid , мы возьмём начиная с 256 символа текст длиной 255 символов.
Теперь нужно будет продублировать здесь строку для замены значений, укажем переменные temp , temp2 , здесь мы сделаем заменяемое значение text2 .
Сделаем с запасом, ещё разок скопирую и вставлю
Теперь мы шагнем от 256 + 255 равно 511, начиная с 512 символа мы опять шагнем на 255 символов.
Ещё продублирую строку замены, переменная temp3 , значение text3 .
Как нам указать в шаблоне заменяемые значения? А мы их ведем просто в наш шаблон, уже есть вот эта строка &text , мы её скопируем и вставим несколько раз, дописав числа 2 и 3.
То есть у нас всякий раз вот этот фрагмент текст будет заменяться на значения из наших переменных temp , temp2 , temp3 . Можно в коде VBA продолжать добавлять разбивку основного текста на части, но будьте внимательны, указывая смещение и длину символов. Соответствующе правки так же вносите в шаблон.
Давайте попробуем запустить и посмотрим, что получится, закрыли, свернули.
Впишемся ли мы в данное ограничение, О'кей, готово.
Так давайте наконец посмотрим, что у нас получилось, как видите текст у нас вместился полностью, единственное хочу заметить, что между предложениями появился квадрат со знаком вопроса, но это символ переноса строк, при подготовке текста в ячейке его нужно заменить пробелом.
Следующие файлы так же сформировались, но тут у нас все осталось как обычно.
Вот таким простым способом вы можете обойти эту условность, ограничение в 255 символов, в принципе сама строковая переменная Text$ может очень много вместить в себя значений, но при работе вот этой функции FindText замена текста, вот здесь, мы не можем производить большие какие-то преобразования, но вот с такой разбивкой большого текста на переменные в принципе можно это продолжать дальше.
То есть у нас 512 + 255 получается 767, следующий шаг в 255 символов можно делать с 768 знака.
У нас же есть ещё место и дальше можно продолжать опять там делать дальше разбивку, если у вас будет очень большой текст.
Воспроизводится на новом файле?
как вы вставляете Ctl+V : выделяете ячейку или строку перед вставкой?
Что вставляете, чтобы проявилась ошибка?
выделяется ячейка перед вставкой.
вставляется пустая строка.
Пример1: есть файл с занятыми строками 1-10, в промежуток между 5 и 6 строкой вставляем пустую строку - получаем сбой.
Пример2: есть файл с занятыми строками 1-10, в промежуток между 5 и 6 строкой вставляем скопированную из другого файла таблицу - получаем сбой.
Откройте проблемную рабочую книгу.
Выделите ячейку в высокой строке. На вкладке "Главная", группа "шрифт" какой шрифт,какой размер шрифта?
Выделите всю проблемную строку (щелкните мышью на заголовок строки), установите шрифт "Arial", кегль 11. Высота строки уменьшилась? Если нет, сделайте автоподбор высоты - при выделенной проблемной строке на вкладке "Главная", группа "Ячейки" формат-автоподбор высоты строки. Проблема осталась?
Файл-Печать.Какой принтер выбран? Поменяйте на Microsoft XPS Document Writer. Переоткройте рабочую книгу (Файл-Закрыть, Файл-Открыть), не закрывая приложения Excel.Проблема осталась?
Запустите их командной строки excel /safe. Откройте проблемную рабочую книгу. Повторите шаги, приводящие к ошибке.Проблема осталась?
Создайте новую рабочую книгу, заполнив столбец а любыми числами в строках 1-10. Сохраните в формате xls. Переоткройте рабочую книгу. Попробуйте повторить ошибку.
Откройте проблемную рабочую книгу.
Выделите ячейку в высокой строке. На вкладке "Главная", группа "шрифт" какой шрифт,какой размер шрифта?
Выделите всю проблемную строку (щелкните мышью на заголовок строки), установите шрифт "Arial", кегль 11. Высота строки уменьшилась? Если нет, сделайте автоподбор высоты - при выделенной проблемной строке на вкладке "Главная", группа "Ячейки" формат-автоподбор высоты строки. Проблема осталась?
Файл-Печать.Какой принтер выбран? Поменяйте на Microsoft XPS Document Writer. Переоткройте рабочую книгу (Файл-Закрыть, Файл-Открыть), не закрывая приложения Excel.Проблема осталась?
Запустите их командной строки excel /safe. Откройте проблемную рабочую книгу. Повторите шаги, приводящие к ошибке.Проблема осталась?
Создайте новую рабочую книгу, заполнив столбец а любыми числами в строках 1-10. Сохраните в формате xls. Переоткройте рабочую книгу. Попробуйте повторить ошибку.
Проблема не в том, что эту строку убрать нельзя. Она поддаётся форматированию.
Вопрос в том, почему эта проблема может возникать:
Почему строка приобретает гигантскую ширину, почему пропадают номера строк?
Здравствуйте.
Не знаю почему, но при работе с Excel у многих не искушенных пользователей возникает проблема с размещением длинного текста: он либо не умещается по ширине (высоте), либо "налезает" на другие ячейки. В обоих случаях смотрится это не очень. 👀
Собственно, ниже в заметке покажу как это достаточно легко можно сделать.
Вариант 1
И так, например в ячейке B3 (см. скрин ниже) у нас расположен длинный текст (одно, два предложения). Наиболее простой способ "убрать" эту строку из вида: поставить курсор на ячейку C3 (следующую после B3) и написать в ней любой символ, подойдет даже пробел .
Обратите внимание на скриншот ниже: справа показано, что строка из ячейки B3 была скрыта, т.к. в C3 появилось три единички.
Написание текста в следующей ячейке
Кстати, чтобы увидеть полный текст, расположенной в B3 — достаточно навести на нее курсор и посмотреть в строку формул.
Чтобы увидеть полный текст.
Вариант 2
Второй способ — это уместить текст в ячейку, расширив при этом высоту ячейки (т.е. ячейка сама станет выше, и текст в ней можно будет прочитать целиком).
Делается это не сложно: сначала нужно выбрать нашу ячейку с текстом (B3), нажать по ней правой кнопкой мышки и выбрать в меню "Формат ячеек" .
Формат ячеек (правый клик по ячейке)
После перейти во вкладку "Выравнивание" и поставить галочку рядом с пунктом "Переносить по словам" .
Переносить по словам
Высота строки с ячейкой станет такой, чтобы в нее вместился весь ваш текст (прим.: Excel сам ее подберет исходя из длины текста) . Далее вам останется только подкорректировать ширину ячейки.
Что получилось в итоге
Вариант 3
Если вы не хотите, чтобы высота строк (ячеек) менялась в большую строну — можно прибегнуть к другому варианту:
- сначала нужно выделить несколько ячеек по высоте (вместе с нашим текстом B3);
- далее использовать инструмент "Объединить ячейки" .
Выделение нескольких ячеек
В результате появится одна большая ячейка, которая займет сразу несколько строк: в нее, разумеется, и впишется наш текст.
Обратите внимание, что для корректного размещения текста в ячейке необходимо использовать инструмент "Перенести текст" (стрелка 2 на скрине ниже).
Текст удачно вписался в одну большую ячейку
Вариант 4
В некоторых случаях, повернув тест на определенный угол, можно удачно вписать его в таблицу. Чтобы сделать это, достаточно в Excel в разделе "Главная" нажать на значок . Пример ниже.
Текст по вертикали
PS
Как еще один вариант: можно вместо текста разместить картинку (скриншот). В некоторых случаях этот способ куда удобнее, чем все вышеприведенные.
Чтобы весь текст поместился в ячейке, можно настроить его перенос по словам, изменить выравнивание, уменьшить размер шрифта или повернуть текст.
Перенос текста в ячейке
Ячейку можно отформатировать таким образом, чтобы текст в ней автоматически переносился на другую строку.
На вкладке Главная выберите Перенос по словам.
Текст в выделенной ячейке будет перенесен в соответствии с шириной столбца. При изменении ширины столбца перенос текста настраивается автоматически.
Примечание: Перенесенный текст может быть не виден из-за заданной высоты строки. Чтобы настроить автоматическое изменение высоты строки в соответствии с размером текста, в меню Формат наведите указатель на пункт Строка и выберите пункт Автоподбор.
Переход на новую строку в ячейке
Чтобы сделать текст в ячейке удобочитаемым, можно вставить разрыв строки.
Дважды щелкните в ячейке.
Щелкните то место, куда нужно вставить разрыв строки, и нажмите клавиши CONTROL+OPTION+RETURN.
Уменьшение размера шрифта по размеру ячейки
В Excel можно уменьшить шрифт таким образом, чтобы в ячейке отображались все содержащиеся в ней данные. Если после этого ввести в ячейку дополнительные данные, Excel продолжит уменьшать размер шрифта.
Выделите нужные ячейки.
Щелкните их правой кнопкой мыши и выберите пункт Формат ячеек.
В диалоговом окне Форматирование ячеек установите флажок Автоподбор ширины.
Данные в ячейке уменьшаются в соответствии с шириной столбца. При изменении ширины столбца или вводе дополнительных данных размер шрифта настраивается автоматически.
Изменение положения содержимого ячейки путем изменения выравнивания или поворота текста
Чтобы улучшить отображение данных на листе, можно изменить положение текста в ячейке. Можно изменить выравнивание содержимого ячейки, использовать отступы или повернуть данные под другим углом.
Выделите ячейку или диапазон ячеек с данными, положение которых требуется изменить.
В меню Формат выберите пункт Ячейки.
В диалоговом окне Форматирование ячеек, на вкладке Выравнивание выполните одно из следующих действий:
Необходимые действия
Изменение горизонтального выравнивания содержимого ячейки
Во всплывающем меню По горизонтали выберите нужный способ выравнивания.
Если выбрать вариант с заполнением или по центру выделения, повернуть текст в этих ячейках будет невозможно.
Изменение вертикального выравнивания содержимого ячейки
Во всплывающем меню По вертикали выберите нужный способ выравнивания.
Изменение отступа содержимого ячейки
Во всплывающем меню По горизонтали выберите команду по левому краю (отступ), по правому краю или по ширине и введите нужную величину отступа (в знаках) в поле Отступ.
Отображение содержимого ячейки по вертикали сверху вниз
В разделе Ориентация щелкните поле, содержащее вертикальный текст.
Поворот текста в ячейке
В разделе Ориентация щелкните или перетащите индикатор, установив с его помощью нужный угол, или введите величину угла в поле градусов.
Восстановление выравнивания по умолчанию для выделенных ячеек
Во всплывающем меню По горизонтали выберите вариант обычное.
Примечание: При сохранении книги в другом формате текст, который был повернут, может не отображаться под правильным углом. В большинстве форматов повернуть текст на любой угол в диапазоне 180 градусов (от +90 до –90) нельзя — в отличие от последних версий Excel. Например, в более ранних версиях Excel текст можно повернуть только на +90, 0 (ноль) или –90 градусов.
Изменение размера шрифта
На вкладке Главная в поле Размер шрифта введите другое число или щелкните, чтобы уменьшить размер шрифта.
Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.
Симптомы
После ввода длинного номера (например, номера кредитной карты) в ячейке Excel номер отображается неправильно в Excel. Например,
Числовой формат по умолчанию в Excel является общим, поэтому вы можете отображать до 11 цифр в ячейке.
Обходной путь
Для решения проблемы используйте один из указанных ниже способов.
Способ 1. Форматирование ячейки как текста
Для этого выполните следующие действия:
Щелкните правой кнопкой мыши поле со списком и выберите пункт Формат ячеек.
На вкладке Число выберите Текст, а затем нажмите ОК.
Затем введите длинное число. (Не забудьте установить формат ячейки, прежде чем ввести число)
Если вы не хотите видеть предупреждающие стрелки, нажмите на маленькую стрелку, а затем Пропустить ошибку.
Способ 2. Использование одинарной кавычки
При вводе длинного числа сначала введите одинарную кавычку (') в ячейке, а затем длинное число.
Например, введите '1234567890123456789, и одинарная кавычка не будет отображаться после нажатия ENTER.
Связанные статьи
Ваше мнение важно для нас! Не стесняйтесь сообщать, что вы думаете об этой статье, используя поле комментария, расположенное внизу документа. Это позволит нам улучшить содержимое. Заранее спасибо!
Читайте также: