Почему в Excel появляется сообщение «не удается сместить объекты на лист»?
Иногда вставка и скрытие столбцов или строк на этом примере не позволяет.
Если вы видите это сообщение, обратитесь к следующей таблице, чтобы найти возможные решения.
Почему это происходит и что с этим делать
Не всегда можно вставлять строки и столбцы.
Сообщение «Невозможно сдвигать объекты с листа» выводится при попытке вставить строки или столбцы на листа, а в разделе «Объекты» для параметра «Показать параметры Excel» выбран параметр «Не скрывать объекты». Это известная ошибка в некоторых версиях Excel. Хотя по умолчанию этот параметр не выбран, его можно установить случайно, нажав определенное сочетания клавиш (CTRL+6).
Чтобы обойти эту ошибку, необходимо изменить параметр с «Ничего» (скрыть объекты) на «Все». Самый быстрый способ сделать это — нажать CTRL+6.
Кроме того, вы можете изменить параметры Excel. Для этого:
-
На вкладке Файл нажмите кнопку Параметры и выберите Дополнительно.
Примечание: В Excel 2007 нажмите кнопку «Microsoft Office» и выберите «Параметры Excel».

Возможно, вы намеренно скрыли объекты в книге. Например, если в книге много объектов, вы можете скрыть их, чтобы реагировать на запросы. В этом случае для переключения между отображением и скрытием объектов можно использовать сочетания клавиш (CTRL+6).
Столбцы нельзя вставлять и скрывать
Если сообщение «Не удается сдвигать объекты за место на сайте» (или аналогичное схожее сообщение) по-прежнему появляется даже после применения предыдущего разрешения, возможно, в ячейках ближе к концу сетки есть такие объекты, как приметки, изображения или диаграммы.
Количество столбцов, которые можно скрыть или вставить, ограничено количеством столбцов между правым краем объекта и последним столбцом на странице (столбец XFD). Если количество столбцов, которые нужно скрыть или вставить в другое место на сайте, превышает это число, объект будет перемещен с этого таблицы, и вы увидите сообщение.
Как правило, эту проблему можно устранить, найдя объект, который его удалил, или отодвигая от конца таблицы. Вот несколько советов по поиску объектов:
- Чтобы быстро перейти к последней ячейке в строке или столбце, нажмите клавишу END, а затем клавишу СТРЕЛКА ВПРАВО или СТРЕЛКА ВНИЗ.
- Чтобы перейти к последней ячейке на сайте, содержавшей данные или форматирование, нажмите CTRL+END.
- Чтобы быстро найти и удалить прикомменты, нажмите F5. В диалоговом окне «Перейти» нажмите кнопку «Специальный». Выберите «Приметки»и нажмите кнопку «ОК». Чтобы удалить комментарий, щелкните правой кнопкой мыши ячейку с комментарием и выберите «Удалить комментарий».
- Чтобы быстро найти графические объекты, включая диаграммы и кнопки, нажмите клавишу F5. В диалоговом окне «Перейти» нажмите кнопку «Специальный». Выберите «Объекты»и нажмите кнопку «ОК». Найденный объект можно удалить или переместить.
Примечание: Эта проблема обычно возникает при вставке или скрытие столбцов. Такая же проблема может возникнуть и с строками, но она будет не так распространенной из-за ограничения на размер строк в Excel 2007, из-за чего вероятность того, что объекты находятся в самом конце листа, меньше вероятно.
Дополнительные сведения и дополнительные советы по устранению неполадок см. в статье «Не удается скрыть столбцы в Excel».
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Не удается вставить листы в конечную книгу так как она содержит меньшее число строк и столбцов
Здравствуйте.
Понимаю, что тема « с оскоминой». Поиском пользовался, похожие темы читал. Сильно не ругайте.
Из огромного множества решений данного вопроса на этом (и не только) форуме наиболее подходящее для себя нашел в приемах. Вот только в том коде файлы, из которых копируются листы, выбираются через диалоговое окно, в моем случае листы должны копироваться из открытых в данный момент книг.
Слабая попытка реализовать решение через код:
Sub CopList()
Dim WB As Workbook
Application.ScreenUpdating = False
For Each WB In Workbooks
If WB.Name <> ThisWorkbook.Name Then
WB.Sheets(1).Copy After:=ThisWorkbook.Sheets (ThisWorkbook.Sheets.Count)
ActiveSheet.Name = WB.Name
End If
Next WB
Application.ScreenUpdating = True
End Sub
Выдает ошибку: «1004» «Не удается вставить листы в конечную книгу, так как она содержит меньшее число строк и столбцов, чем исходная книга.»
Прошу помочь разобраться.
Спасибо.
Не удается вставить листы в конечную книгу так как она содержит меньшее число строк и столбцов
2009-04-16 15:15:01 UTC
При копировании листа/листов из одной книги в другую появляется следующая
ошибка: «Не удается вставить листы в конечную книгу, так как она содержит
меньшее число строк и столбцов, чем исходная книга. » и далее предлагается
скопировать данные на листе откуда копируются данные и вставить их в новый
лист конечной книги. Предложение, конечно, хорошее, но не очень удобное,
учитывая, что копируется несколько листов с установленными связями.
Подскажите, что может быть «не так» в моей конечной книге?
Ткачёв О. А.
2009-04-16 23:57:31 UTC
Не удается вставить листы в конечную книгу так как она содержит меньшее число строк и столбцов
Добрый день дамы и господа
Есть два открытых файла Excel. Название одного из них всегда содержит «М29*. «, название второго меняется «Nnn».
Нужно в первый открытый файл «М29. » скопировать активный лист из второго открытого файла «Nnn» (во втором файле может быть и много листов).
Ранее я думал, что необходимо чётко прописывать наименования книг, листов, но наткнулся на этот код:
[vba]
Sub О()
Dim iPath$, iFileName$
iPath = ThisWorkbook.Path & «\»
iFileName = Dir(iPath & «*.xls»)
Do Until iFileName = «»
If iFileName <> ThisWorkbook.Name Then
ThisWorkbook.Sheets.Add , , , iPath & iFileName
End If
iFileName = Dir
Loop
End Sub
[/vba]
Попробовал его при следующих условиях:
На рабочем столе сохранён Excel с поддержкой макросов «Макросы», открыты обе книги («М29. » и «Nnn»), запускаю макрос из панели быстрого доступа.
Что на первом файле запускаю, что на втором — результат одинаков: копируется первый лист файла «М29. » в файл «Макросы».
Пусть не правильно. пусть не то и не туда, но копируется же.
Добрый день дамы и господа
Есть два открытых файла Excel. Название одного из них всегда содержит «М29*. «, название второго меняется «Nnn».
Нужно в первый открытый файл «М29. » скопировать активный лист из второго открытого файла «Nnn» (во втором файле может быть и много листов).
Ранее я думал, что необходимо чётко прописывать наименования книг, листов, но наткнулся на этот код:
[vba]
Sub О()
Dim iPath$, iFileName$
iPath = ThisWorkbook.Path & «\»
iFileName = Dir(iPath & «*.xls»)
Do Until iFileName = «»
If iFileName <> ThisWorkbook.Name Then
ThisWorkbook.Sheets.Add , , , iPath & iFileName
End If
iFileName = Dir
Loop
End Sub
[/vba]
Попробовал его при следующих условиях:
На рабочем столе сохранён Excel с поддержкой макросов «Макросы», открыты обе книги («М29. » и «Nnn»), запускаю макрос из панели быстрого доступа.
Что на первом файле запускаю, что на втором — результат одинаков: копируется первый лист файла «М29. » в файл «Макросы».
Пусть не правильно. пусть не то и не туда, но копируется же. Yar4i
К сообщению приложен файл: 29_2-12-13_556_.xlsx (8.8 Kb) · Nnn.xlsx (7.6 Kb)
Сообщение отредактировал Yar4i — Среда, 15.03.2017, 14:48
Сообщение Добрый день дамы и господа
Есть два открытых файла Excel. Название одного из них всегда содержит «М29*. «, название второго меняется «Nnn».
Нужно в первый открытый файл «М29. » скопировать активный лист из второго открытого файла «Nnn» (во втором файле может быть и много листов).
Ранее я думал, что необходимо чётко прописывать наименования книг, листов, но наткнулся на этот код:
[vba]
Sub О()
Dim iPath$, iFileName$
iPath = ThisWorkbook.Path & «\»
iFileName = Dir(iPath & «*.xls»)
Do Until iFileName = «»
If iFileName <> ThisWorkbook.Name Then
ThisWorkbook.Sheets.Add , , , iPath & iFileName
End If
iFileName = Dir
Loop
End Sub
[/vba]
Попробовал его при следующих условиях:
На рабочем столе сохранён Excel с поддержкой макросов «Макросы», открыты обе книги («М29. » и «Nnn»), запускаю макрос из панели быстрого доступа.
Что на первом файле запускаю, что на втором — результат одинаков: копируется первый лист файла «М29. » в файл «Макросы».
Пусть не правильно. пусть не то и не туда, но копируется же. Автор — Yar4i
Дата добавления — 15.03.2017 в 14:47
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Замечаний: 0% ±
Excel 2010
Приведенный Вами макрос просматривает ВСЮ папку, где лежит файл с макросом. Из ВСЕХ файлов с расширением xls он выдергивает по листку и копирует в файл с макросом. Причем, похоже для этого даже необязательно: открыты ли они.
Для Вашей цели достаточно находиться на листе, который должен быть скопирован и одной строки:
[vba]
ActiveSheet.Copy After:=Workbooks(«М29. «).Sheets(Workbooks(«М29. «).Sheets.Count)
[/vba]
Вместо «М29. «, конечно же, должно быть полное имя файла с расширением.
Приведенный пример вставляет новый лист в конец книги (правее всех). А вот так он будет вставлен левее всех:
[vba]
ActiveSheet.Copy Before:=Workbooks(«М29. «).Sheets(1)
Приведенный Вами макрос просматривает ВСЮ папку, где лежит файл с макросом. Из ВСЕХ файлов с расширением xls он выдергивает по листку и копирует в файл с макросом. Причем, похоже для этого даже необязательно: открыты ли они.
Для Вашей цели достаточно находиться на листе, который должен быть скопирован и одной строки:
[vba]
ActiveSheet.Copy After:=Workbooks(«М29. «).Sheets(Workbooks(«М29. «).Sheets.Count)
[/vba]
Вместо «М29. «, конечно же, должно быть полное имя файла с расширением.
Приведенный пример вставляет новый лист в конец книги (правее всех). А вот так он будет вставлен левее всех:
[vba]
ActiveSheet.Copy Before:=Workbooks(«М29. «).Sheets(1)
Сообщение Приведенный Вами макрос просматривает ВСЮ папку, где лежит файл с макросом. Из ВСЕХ файлов с расширением xls он выдергивает по листку и копирует в файл с макросом. Причем, похоже для этого даже необязательно: открыты ли они.
Для Вашей цели достаточно находиться на листе, который должен быть скопирован и одной строки:
[vba]
ActiveSheet.Copy After:=Workbooks(«М29. «).Sheets(Workbooks(«М29. «).Sheets.Count)
[/vba]
Вместо «М29. «, конечно же, должно быть полное имя файла с расширением.
Приведенный пример вставляет новый лист в конец книги (правее всех). А вот так он будет вставлен левее всех:
[vba]
