Excel проверка данных не работает при копировании

Обновлено: 07.07.2024

День добрый! Есть две книги, одна сформирована экспортом из проги Wialon (транспортный мониторинг, Webморда, статистику позволяет экспортировать сразу в .xlsx), вторая чистый лист.
Во второй книге, для переноса части значений из выгрузки, для дальнейшей работы с ними, использую стандартный макрос:

При выполнении в первый раз или два, всё прошло удачно, данные скопировались. На третий и далее повторения, выдает ошибку:

данные не могу быть вставлены из-за несоответствия формы и размеров области копирования и области вставки. Выполните одно из следующих действий:
1. выберите и вставьте одну ячейку;
2. выберите и вставьте прямоугольник соответ. размера и формы;

В первые два раза ячейку-приемник никак не изменял, абсолютно стоковая ячейка, принимала значения столбцов на ура.
Следом вторая ячейка приняла значение второго диапазона значений из исходной выгрузки. А вот на третий раз, появилась ошибка. После этого, первые два варианта макроса(изменялись только значения источника-диапазон и приемника данных-ячейка) - также перестали выполнятся и выдают ту же ошибку.


  • 1. Сменить предварительно размер ячейки, перед выполнением макроса(бредовая идея, но всё же попробовал) - не помогло;
  • 2. Создал отдельно две книги, в первую положил кнопку, к ней прикрутил свой макрос. Во второй создал простой набор данных, в первой колонке цифры, во второй дни недели по именам. Всё копируется в первую книгу, выполняется - работает. Подкидываю в макрос файл с выгрузкой - не копируется ни одна колонка, всё время ошибка указанная выше;
  • 3. Менял формат "чистой" ячейки на формат, как в исходнике - не помогло;

По нажатию кнопки "Debug", отправляет на вот эту строку:
[vba]

Если в ручную выделить диапазон(любой) значений в исходном файле, через копипаст вставить в книгу-приёмник, в любую ячейку, всё скопируется.

В чем может быть ошибка? В выгрузке? Но как тогда первые два раза отработало? Нет ли какого-нибудь переполнения или чего-то подобного?

Заранее благодарю за помощь!

День добрый! Есть две книги, одна сформирована экспортом из проги Wialon (транспортный мониторинг, Webморда, статистику позволяет экспортировать сразу в .xlsx), вторая чистый лист.
Во второй книге, для переноса части значений из выгрузки, для дальнейшей работы с ними, использую стандартный макрос:

При выполнении в первый раз или два, всё прошло удачно, данные скопировались. На третий и далее повторения, выдает ошибку:

данные не могу быть вставлены из-за несоответствия формы и размеров области копирования и области вставки. Выполните одно из следующих действий:
1. выберите и вставьте одну ячейку;
2. выберите и вставьте прямоугольник соответ. размера и формы;

В первые два раза ячейку-приемник никак не изменял, абсолютно стоковая ячейка, принимала значения столбцов на ура.
Следом вторая ячейка приняла значение второго диапазона значений из исходной выгрузки. А вот на третий раз, появилась ошибка. После этого, первые два варианта макроса(изменялись только значения источника-диапазон и приемника данных-ячейка) - также перестали выполнятся и выдают ту же ошибку.


  • 1. Сменить предварительно размер ячейки, перед выполнением макроса(бредовая идея, но всё же попробовал) - не помогло;
  • 2. Создал отдельно две книги, в первую положил кнопку, к ней прикрутил свой макрос. Во второй создал простой набор данных, в первой колонке цифры, во второй дни недели по именам. Всё копируется в первую книгу, выполняется - работает. Подкидываю в макрос файл с выгрузкой - не копируется ни одна колонка, всё время ошибка указанная выше;
  • 3. Менял формат "чистой" ячейки на формат, как в исходнике - не помогло;

По нажатию кнопки "Debug", отправляет на вот эту строку:
[vba]

Если в ручную выделить диапазон(любой) значений в исходном файле, через копипаст вставить в книгу-приёмник, в любую ячейку, всё скопируется.

В чем может быть ошибка? В выгрузке? Но как тогда первые два раза отработало? Нет ли какого-нибудь переполнения или чего-то подобного?

Заранее благодарю за помощь! vlad_stv

При выполнении в первый раз или два, всё прошло удачно, данные скопировались. На третий и далее повторения, выдает ошибку:

данные не могу быть вставлены из-за несоответствия формы и размеров области копирования и области вставки. Выполните одно из следующих действий:
1. выберите и вставьте одну ячейку;
2. выберите и вставьте прямоугольник соответ. размера и формы;

В первые два раза ячейку-приемник никак не изменял, абсолютно стоковая ячейка, принимала значения столбцов на ура.
Следом вторая ячейка приняла значение второго диапазона значений из исходной выгрузки. А вот на третий раз, появилась ошибка. После этого, первые два варианта макроса(изменялись только значения источника-диапазон и приемника данных-ячейка) - также перестали выполнятся и выдают ту же ошибку.


  • 1. Сменить предварительно размер ячейки, перед выполнением макроса(бредовая идея, но всё же попробовал) - не помогло;
  • 2. Создал отдельно две книги, в первую положил кнопку, к ней прикрутил свой макрос. Во второй создал простой набор данных, в первой колонке цифры, во второй дни недели по именам. Всё копируется в первую книгу, выполняется - работает. Подкидываю в макрос файл с выгрузкой - не копируется ни одна колонка, всё время ошибка указанная выше;
  • 3. Менял формат "чистой" ячейки на формат, как в исходнике - не помогло;

По нажатию кнопки "Debug", отправляет на вот эту строку:
[vba]

Если в ручную выделить диапазон(любой) значений в исходном файле, через копипаст вставить в книгу-приёмник, в любую ячейку, всё скопируется.

В чем может быть ошибка? В выгрузке? Но как тогда первые два раза отработало? Нет ли какого-нибудь переполнения или чего-то подобного?

Заранее благодарю за помощь! Автор - vlad_stv
Дата добавления - 15.03.2016 в 15:34

Примечание: Это расширенная статья о проверке данных. Общие сведения о проверке данных, а также сведения о проверке данных в ячейке или диапазоне см. в статье Добавление проверки данных в ячейку или диапазон ячеек.

Проверка данных используется для ограничения типа данных или значений, которые можно вводить в ячейку. Например, ее можно применять для расчета максимального разрешенного значения в ячейке на основе значения в другой ячейке книги. В приведенном ниже примере пользователь ввел в ячейку значение "абв", которое является для нее недопустимым.

Ситуации, в которых полезно использовать проверку данных

Проверка данных незаменима в том случае, если необходимо предоставить общий доступ к книге другим пользователям и обеспечить точность и согласованность вводимых данных. Кроме всего прочего, проверку данных можно использовать в следующих целях:

Ограничение данных предопределенными элементами списка: например, можно ограничить выбор отдела значениями "Бухгалтерия", "Финансовый отдел", "Отдел кадров" и т. д.

Ограничение использования чисел за пределами указанного диапазона: например, можно указать максимальный процент годового роста зарплаты сотрудника (например, 3 %) или разрешить только целое число от 1 до 100.

Ограничение дат, находящихся за пределами определенного промежутка времени: например, можно предотвратить выбор даты, которая предшествует текущей, при запросе отгула.

Ограничение времени, которое находится за пределами определенного промежутка времени: например, вы можете указать, что собрания должны проводиться в период между 8:00 и 17:00.

Ограничение количества текстовых знаков: например, можно разрешить ввод не более 10 знаков в ячейку.

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

Предупреждение о недопустимых данных

Предотвращает ввод недопустимых данных в ячейку.

Предупреждает пользователей о том, что введенные данные недопустимы, но не препятствует их вводу.

Когда появляется предупреждение, пользователь может нажать кнопку Да, чтобы принять недопустимый ввод, кнопку Нет , чтобы изменить введенные данные, или кнопку Отмена, чтобы удалить недопустимую запись.

Советы по использованию проверки данных

Обратите внимание на советы и рекомендации по использованию проверки данных в Excel.

Примечание: Если вы хотите использовать проверку данных в книгах в Службы Excel или Excel Web App, сначала потребуется создать ее в классическом приложении Excel.

Ширина раскрывающегося списка определяется шириной ячейки, для которой применяется проверка данных. Возможно, вам потребуется увеличить ее, чтобы не обрезать допустимые записи, ширина которых больше ширины раскрывающегося списка.

Если необходимо защитить лист или книгу, выполните это действие после настройки параметров проверки. Перед тем как защитить лист, убедитесь, что разблокированы любые ячейки, которые необходимо проверить. В противном случае пользователям не удастся ввести данные в ячейки. См. статью Защита листа.

Если требуется открыть общий доступ к книге, можно сделать это после настройки проверки данных. Если книга открыта для общего доступа, изменение параметров проверки данных невозможно, пока не будет отменен общий доступ.

Можно применить поверку данных к ячейкам, в которые уже введены данные. Однако в приложении Excel отсутствует возможность автоматического уведомления о том, что в существующих ячейках имеются недопустимые данные. В этом случае можно выделить недопустимые данные на листе с помощью кругов. Когда недопустимые данные найдены, круги можно скрыть. При исправлении недопустимых данных они исчезают автоматически.

Чтобы обвести данные, выделите нужные ячейки и выберите Данные > Работа с данными > Проверка данных > Обвести неверные данные.

Чтобы быстро отменить проверку данных в ячейке, выделите ее и выберите Данные > Работа с данными > Проверка данных > Параметры > Очистить все.

Чтобы найти ячейки на листе, для которых включена проверка данных, на вкладке Главная в группе элементов Правка выберите пункт Найти и выделить, а затем нажмите кнопку Проверка данных. После того как найдены ячейки, для которых включена проверка данных, можно изменить, скопировать или удалить параметры проверки данных.

Для создания раскрывающегося списка можно воспользоваться командой Присвоить имя (на вкладке Формулы в группе Определенные имена), которая позволяет определить имя для диапазона, содержащего список. После создания списка на другом листе можно скрыть лист, который содержит список, а затем защитить книгу, чтобы пользователи не смогли получить доступ к этому списку.

Если вы измените параметры проверки одной ячейки, вы можете автоматически применить изменения ко всем остальным ячейкам, имеющим такие же параметры. Для этого на вкладке Параметры установите флажок Распространить изменения на другие ячейки с тем же условием.

Если проверка данных не работает, проверьте указанные ниже условия.

Выключен пересчет вручную. Если включен пересчет вручную, невычисляемые ячейки могут повлиять на правильность проверки данных. Чтобы отключить пересчет вручную, откройте вкладку Формулы, в группе Вычисление выберите Параметры вычислений и щелкните параметр Автоматически.

Возможно, таблица Excel связана с сайтом SharePoint. В таблицу Excel, которая связана с сайтом SharePoint, добавить проверку данных невозможно. Чтобы добавить проверку данных, необходимо удалить связь таблицы Excel или преобразовать ее в диапазон.

Возможно, в настоящее время вводятся данные. Во время ввода данных в ячейку команда "Проверка данных" недоступна. Нажмите клавишу ВВОД, чтобы завершить ввод данных, или ESC, чтобы отменить его.

Возможно, лист защищен или является общим. Если книга защищена или используется совместно, изменить параметры проверки данных невозможно. Необходимо сначала отменить общий доступ или снять защиту книги.

Обновление или удаление проверки данных в книге, созданной другим пользователем

Если вы получили книгу с проверкой данных от другого пользователя и лист не защищен паролем, вы можете изменить или удалить проверку. Если лист защищен и вы не знаете пароль, обратитесь к его прежнему владельцу, так как в Excel невозможно восстановить потерянные пароли. Вы также можете скопировать данные на другой лист и удалить проверку данных.

Если при попытке ввести данные в ячейку или изменить их выводится предупреждение и вы не знаете точно, что вы можете вводить, обратитесь к владельцу книги.

У вас есть вопрос об определенной функции?

Помогите нам улучшить Excel

У вас есть предложения по улучшению следующей версии Excel? Если да, ознакомьтесь с темами на портале пользовательских предложений для Excel.

Проверка данных позволяет ограничить тип данных или значения, которые можно ввести в ячейку. Чаще всего она используется для создания раскрывающихся списков.

Браузер не поддерживает видео.

Проверьте, как это работает!

Выделите ячейки, для которых необходимо создать правило.

Выберите Данные > Проверка данных.

Проверка данных

На вкладке Параметры в списке Тип данных выберите подходящий вариант:

Целое число, чтобы можно было ввести только целое число.

Десятичное число, чтобы можно было ввести только десятичное число.

Список, чтобы данные выбирались из раскрывающегося списка.

Дата, чтобы можно было ввести только дату.

Время, чтобы можно было ввести только время.

Длина текста, чтобы ограничить длину текста.

Другой, чтобы задать настраиваемую формулу.

В списке Значение выберите условие.

Задайте остальные обязательные значения с учетом параметров Тип данных и Значение.

Нажмите ОК.

Скачивание примеров

Ограничение ввода данных

Выделите ячейки, для которых нужно ограничить ввод данных.

На вкладке Данные щелкните Проверка данных > Проверка данных.

Примечание: Если команда проверки недоступна, возможно, лист защищен или книга является общей. Если книга является общей или лист защищен, изменить параметры проверки данных невозможно. Дополнительные сведения о защите книги см. в статье Защита книги.

В поле Тип данных выберите тип данных, который нужно разрешить, и заполните ограничивающие условия и значения.

Примечание: Поля, в которых вводятся ограничивающие значения, помечаются на основе выбранных вами данных и ограничивающих условий. Например, если выбран тип данных "Дата", вы сможете вводить ограничения в полях минимального и максимального значения с пометкой Начальная дата и Конечная дата.

Запрос для пользователей на ввод допустимых значений

Выделите ячейки, в которых для пользователей нужно отображать запрос на ввод допустимых данных.

На вкладке Данные щелкните Проверка данных > Проверка данных.

Примечание: Если команда проверки недоступна, возможно, лист защищен или книга является общей. Если книга является общей или лист защищен, изменить параметры проверки данных невозможно. Дополнительные сведения о защите книги см. в статье Защита книги.

На вкладке Подсказка по вводу установите флажок Отображать подсказку, если ячейка является текущей.

На вкладке Данные щелкните Проверка данных > Проверка данных.

Примечание: Если команда проверки недоступна, возможно, лист защищен или книга является общей. Если книга является общей или лист защищен, изменить параметры проверки данных невозможно. Дополнительные сведения о защите книги см. в статье Защита книги.

Выполните одно из следующих действий.

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

Требовать от пользователей исправления ошибки перед продолжением

Предупреждать пользователей о том, что данные недопустимы, и требовать от них выбора варианта Да или Нет, чтобы указать, нужно ли продолжать

Предупреждение

Добавление проверки данных в ячейку или диапазон ячеек

Примечание: Первые два действия, указанные в этом разделе, можно использовать для добавления любого типа проверки данных. Действия 3–7 относятся к созданию раскрывающегося списка.

Выделите одну или несколько ячеек, к которым нужно применить проверку.

На вкладке Данные в группе Работа с данными нажмите кнопку Проверка данных.

На вкладке Параметры в поле Разрешить выберите Список.

В поле Источник введите значения списка, разделенные запятыми. Например, введите Низкий,Средний,Высокий.

Убедитесь, что установлен флажок Список допустимых значений. В противном случае рядом с ячейкой не будет отображена стрелка раскрывающегося списка.

Чтобы указать, как обрабатывать пустые (нулевые) значения, установите или снимите флажок Игнорировать пустые ячейки.

После создания раскрывающегося списка убедитесь, что он работает так, как нужно. Например, можно проверить, достаточно ли ширины ячеек для отображения всех ваших записей.

Отмена проверки данных. Выделите ячейки, проверку которых вы хотите отменить, щелкните Данные > Проверка данных и в диалоговом окне проверки данных нажмите кнопки Очистить все и ОК.

В таблице перечислены другие типы проверки данных и указано, как применить их к данным на листе.

Разрешить вводить только целые числа из определенного диапазона

Выполните действия 1–2, указанные выше.

В списке Разрешить выберите значение Целое число.

В поле Данные выберите необходимый тип ограничения. Например, для задания верхнего и нижнего пределов выберите ограничение Диапазон.

Введите минимальное, максимальное или определенное разрешенное значение.

Можно также ввести формулу, которая возвращает числовое значение.

Например, допустим, что вы проверяете значения в ячейке F1. Чтобы задать минимальный объем вычетов, равный значению этой ячейки, умноженному на 2, выберите пункт Больше или равно в поле Данные и введите формулу =2*F1 в поле Минимальное значение.

Разрешить вводить только десятичные числа из определенного диапазона

Выполните действия 1–2, указанные выше.

В поле Разрешить выберите значение Десятичный.

В поле Данные выберите необходимый тип ограничения. Например, для задания верхнего и нижнего пределов выберите ограничение Диапазон.

Введите минимальное, максимальное или определенное разрешенное значение.

Можно также ввести формулу, которая возвращает числовое значение. Например, для задания максимального значения комиссионных и премиальных в размере 6% от заработной платы продавца в ячейке E1 выберите пункт Меньше или равно в поле Данные и введите формулу =E1*6% в поле Максимальное значение.

Примечание: Чтобы пользователи могли вводить проценты, например "20 %", в поле Разрешить выберите значение Десятичное число, в поле Данные задайте необходимый тип ограничения, введите минимальное, максимальное или определенное значение в виде десятичного числа, например 0,2, а затем отобразите ячейку проверки данных в виде процентного значения, выделив ее и нажав кнопку Процентный формат на вкладке Главная в группе Число.

Разрешить вводить только даты в заданном интервале времени

Выполните действия 1–2, указанные выше.

В поле Разрешить выберите значение Дата.

В поле Данные выберите необходимый тип ограничения. Например, для разрешения даты после определенного дня выберите ограничение Больше.

Введите начальную, конечную или определенную разрешенную дату.

Вы также можете ввести формулу, которая возвращает дату. Например, чтобы задать интервал времени между текущей датой и датой через 3 дня после текущей, выберите пункт Между в поле Данные, потом введите =СЕГОДНЯ() в поле Дата начала и затем введите =СЕГОДНЯ()+3 в поле Дата завершения.

Разрешить вводить только время в заданном интервале

Выполните действия 1–2, указанные выше.

В поле Разрешить выберите значение Время.

В поле Данные выберите необходимый тип ограничения. Например, для разрешения времени до определенного времени дня выберите ограничение меньше.

Укажите время начала, окончания или определенное время, которое необходимо разрешить. Если вы хотите ввести точное время, используйте формат чч:мм.

Например, если в ячейке E2 задано время начала (8:00), а в ячейке F2 — время окончания (17:00) и вы хотите ограничить собрания этим промежутком, выберите между в поле Данные, а затем введите =E2 в поле Время начала и =F2 в поле Время окончания.

Разрешить вводить только текст определенной длины

Выполните действия 1–2, указанные выше.

В поле Разрешить выберите значение Длина текста.

В поле Данные выберите необходимый тип ограничения. Например, для установки определенного количества знаков выберите ограничение Меньше или равно.

В данном случае нам нужно ограничить длину вводимого текста 25 символами, поэтому выберем меньше или равно в поле Данные и введем 25 в поле Максимальное значение.

Вычислять допустимое значение на основе содержимого другой ячейки

Выполните действия 1–2, указанные выше.

В поле Разрешить выберите необходимый тип данных.

В поле Данные выберите необходимый тип ограничения.

В поле или полях, расположенных под полем Данные, выберите ячейку, которую необходимо использовать для определения допустимых значений.

Например, чтобы допустить ввод сведений для счета только тогда, когда итог не превышает бюджет в ячейке E1, выберите значение Число десятичных знаков в списке Разрешить, ограничение "Меньше или равно" в списке "Данные", а в поле Максимальное значение введите >= =E1.

В примерах ниже при создании формул с условиями используется настраиваемый вариант. В этом случае содержимое поля "Данные" не играет роли.

Представленные в этой статье снимки экрана созданы в Excel 2016, но функции аналогичны Excel в Интернете.

Введите формулу

Значение в ячейке, содержащей код продукта (C2), всегда начинается со стандартного префикса "ID-" и имеет длину не менее 10 (более 9) знаков.

Ячейка с наименованием продукта (D2) содержала только текст.

Значение в ячейке, содержащей чью-то дату рождения (B6), было больше числа лет, указанного в ячейке B4.

=ЕСЛИ(B6<=(СЕГОДНЯ()-(365*B4));TRUE,FALSE)

Все данные в диапазоне ячеек A2:A10 содержали уникальные значения.

=СЧЁТЕСЛИ($A$2:$A$10;A2)=1

Пример 4. Формулы для проверки данных

Примечание: Необходимо сначала ввести формулу проверки данных в ячейку A2, а затем скопировать эту ячейку в ячейки A3:A10 так, чтобы второй аргумент СЧЁТЕСЛИ соответствовал текущей ячейке. Часть A2)=1 изменится на A3)=1, A4)=1 и т. д.

Возможно я не первый кто об этом пишет, сам решение проблемы нашел на днях, в течении 5 лет мучался, изредка натыкаясь на зависания.

Иногда работая с файлом Эксель во время копирования ячейки программа зависает и перестает реагировать на действия пользователя, тут три варианта:

В любом из вариантов дальнейшая работа с файлом затруднена, даже если быстро отпустит, так как при новом копировании ячейки произойдет тоже самое.

В кратце, виндовс можно перевести в режим быстродействия, отключив визуальные эффекты (анимации, красивые шрифты и т.д.), помогает сразу. Как это сделать: гуглим режим быстродействия + свой виндовс.

Ещё одно решение которые вроде помогло, но через две минуты опять все зависло, описано по ссылке, смысла в нем не вижу.

Это своего рода баг экселя.

Сколько нервов ушло и времени. Уже и на оперативку думал и на проц.

Цель поста одна - помочь кому-то ещё.

Мне кажется я что-то не так делаю, фото:

Иллюстрация к комментарию

О да,знакомая хуета.Нервов много потрепала

у меня проблема решилась отменной выделения дубликатов. всё.

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

открою вам свою тайну как побороть тормоза экселя. всё очень просто: выделяете в на странице как можно больше пустых строк после заполненных ячеек и удаляете их к хуям собачьим, и всё будет работать быстро и без тормозов. хз как это связано но мне помогло, может в них хранится информация типа нуля (не того который цифра 0, а того который пустота/ничто) или как то так. в общем недавно пришлось обрабатывать большой экселевский файл, редактировать и прочее, тормоза доводили до того что эксель вываливался в ошибку, вешал систему на несколько минут и не сохранял введенные изменения, ноут кстати с SSD, 16 гигов оперативки, проц i7, уж эксель ссаный точно его тормозить не должен был. я перелопатил кучу всякого "полезного" говна по этому поводу, а потом решил попробовать удалить пустые строки, идущие после заполненных. и с тех пор "ни единого разрыва". удачи!

Читайте также: