Не работает insert в excel

Обновлено: 04.07.2024

Dim cn As ADODB.Connection
Dim strIns As String

MyPath = ActiveWorkbook.Path + "\" + ActiveWorkbook.Name

Set cn = New ADODB.Connection
cn.Mode = adModeReadWrite
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & MyPath & ";" & _
"Extended Properties=Excel 8.0;Jet OLEDB:Engine Type=35;HDR=no;imex=2;Jet OLEDB:Compact Without Replica Repair=False;"

cn.Close
Set cn = Nothing

Код выполняется с ошибкой, мол, инструкция insert into содержит неизвестное поле f2. Если в селекте указать одно поле (f1), то отрабатывает нормально. Такое ощущение, что команда не выполняется для наборов с количеством полей более одного. В чем тут дело? Буду крайне признателен, если убедительно расскажете, что этого вообще нельзя сделать (если нельзя) и обратите мое внимание на причины.

vkodor
1. С форматами полей, действительно, я намучился здорово в свое время и знаю об этом. Однако в данном случае не думаю, что проблема в форматах. Идея с псевдокодом, зачастую спасает, обычно я так и делаю. Но в этот раз не получается. Кстати, этим заведует imex.
2. Про то, что нельзя работать с открытой книгой - у меня метры кода, когда я работаю именно так. Причем insrt value тех же значений проходит на ура, не говоря уже о селектах. Но вот в данном случае не смог побороть. Я, признаться, нечто подобное предполагал. Приведенная ссылка, возможно, поможет получить ясный, отрицательный ответ, что не мало. Спасибо

vkodor
1. С форматами полей, действительно, я намучился здорово в свое время и знаю об этом. Однако в данном случае не думаю, что проблема в форматах. Идея с псевдокодом, зачастую спасает, обычно я так и делаю. Но в этот раз не получается. Кстати, этим заведует imex.
2. Про то, что нельзя работать с открытой книгой - у меня метры кода, когда я работаю именно так. Причем insrt value тех же значений проходит на ура, не говоря уже о селектах. Но вот в данном случае не смог побороть. Я, признаться, нечто подобное предполагал. Приведенная ссылка, возможно, поможет получить ясный, отрицательный ответ, что не мало. Спасибо

Эксель не дает вставить строку? Очистите все ячейки, а после удалите форматирование из остальных строк / столбцов, попробуйте изменить свойства Position для объекта или удалите лишний мусор. Ниже рассмотрим, почему Excel не дает вставить данные, в чем могут быть причины подобной проблемы, и как ее устранить своими силами.

Причины

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


Что делать, если Excel не дает вставить данные

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

Для начала разберемся, как правильно выполнять эту работу. в Эксель Здесь возможно несколько вариантов:

  • Откройте таблицу, куда необходимо вставить строку. Для выполнения работы жмите в нужной точке и кликните правой кнопкой мышки. Сделайте это на ячейке, над которой планируется вставка. В открывшемся меню выберите пункт «Вставить». Если Эксель не дает вставить данные, следуйте рассмотренным ниже инструкциям.


  • Для копирования без контекстного меню жмите на сочетание Ctrl+. После открытия диалогового окна приложение предлагает вставить ячейки в таблицу со смещением вниз, ячейки со сдвигом вправо, строку, столбец. Поставьте переключатель в «строку» и подтвердите действие.


  • Если Excel не вставляет строки в конце таблицы и не дает это делать, постарайтесь сделать все правильно. Для смещения таблицы вниз выделите последний ряд, а справа внизу потяните за крестик на столько строчек (на сколько необходимо добавить). При копировании данных удалите информацию с материнской ячейки. Для этого в меню выберите «Очистить содержимое».


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

  • Жмите на ячейку заголовков в 1-м пустом столбце справа от информации. Ячейка заголовков представляет собой первую секцию в каждом столбце, указывающая, какой столбец вы применяете.
  • Кликните на кнопку Ctlr и зафиксируйте ее в нажатом состоянии.
  • Жмите на кнопку «Стрелка вправо», для выделения столбцов с правой стороны.
  • Кликните на «Правка» и выберите «Удалить».
  • Жмите на 1-ую пустую строчку под последней строкой с данными.
  • Кликните и зафиксируйте кнопку Ctrl, а после этого жмите Стрелка вниз для выделения всех строчек внизу.
  • В меню «Правка» выделите команду «Удалить». Для удаления форматирования остальных ячеек, в которые Эксель не добавляет строки и не дает копировать, сделайте указанные выше шаги.


  • Кликните маленькую ячейку между заголовком 1-й строки и 1-го столбца для выделения текста.
  • Войдите в меню «Формат» и выберите пункт ячейки, а после откройте раздел «Граница». Учтите, что форматирование, добавленное в оставшиеся секции, часто меняется. При этом подразумевается, что пользователь хочет удалить форматирование границ. Если нужно убрать другие виды форматирования, придется поменять параметры на иной вкладке в окне «Формат ячеек».
  • Выберите «Нет», а после кликните «ОК».


  • Жмите любую ячейку в строчке, куда вы планируете вставить строку. Убедитесь, что система дает это сделать.
  • В меню «Вставка» выберите строчку или столбец (в зависимости от поставленной задачи).

Если Эксель дает вставить строчку, значит, работа сделана правильно.

Изменение свойств Position

При возникновении вопроса, почему в Эксель не вставляются строки, попробуйте внести изменения в свойства объекта для перемещения и изменения размеров. Этот метод подходит для Эксель версий до 2003 года включительно. Если софт не дает сделать работу, пройдите такие шаги:

  1. Выделите ячейку и жмите правую кнопку мышки.
  2. Выберите пункт «Показать примечание» или «Показать или скрыть примечание».
  3. Поставьте указатель мышки на границу объекта, пока он не превратится в стрелку с четырьмя маленькими стрелками в указателе.
  4. Жмите на объект для его выделения.
  5. В Эксель 2003, если он не дает вставить строчку», выберите «имя объекта» в меню «Формат», а в 2007-м жмите на «Формат <> имя объекта».
  6. Перейдите в раздел «Формат» и откройте «Свойства».
  7. Кликните на кнопку «Переместить и изменить размер ячейки».
  8. Жмите на «ОК».

Сделайте указанные выше шаги для каждого объекта в нужной секции объекта. После этого проверьте, дает ли Эксель вставить материал или нет.

Удаление макроса

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

  1. Войдите на вкладку «Разработчик» и раздел Visual Basic.
  2. Выберите элемент «Макрос».
  3. При недоступной вкладке «Разработчик» справа жмите на кнопку с шестеренкой и выберите «Параметры ленты».
  4. В разделе «Настройки» поставьте отметку «Разработчик».
  5. В списке выберите макрос, который нужно удалить, и выберите соответствующий пункт.


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

Не можете понять, почему у вас в Excel не работает правая кнопка мыши? В чем может быть причина?

  1. Срабатывает макрос, вызывающий блокировку вызова контекстного меню;
  2. Глюк связан с некорректным выходом из предыдущего документа Excel;
  3. Общий сбой со стороны работы программы;
  4. Сломаны мышь или клавиатура;
  5. «Шалит» операционная система;
  6. Вирусы на компе;
  7. Произошел конфликт с подключенным принтером.

Главное предназначение данной клавиши - вызов контекстного меню с основными командами: «Вставить», «Копировать», «Формат ячеек», «Гиперссылка» и т.д. Понятное дело, если правая кнопка мыши не работает, «каши вы не сварите» ни в Эксель, ни в любой другой программе.

Почему мы упомянули другие утилиты? Потому что часть причин, из-за которых мышь не работает, с Excel связана, другая же – нет. Как узнать, глобальная случилась проблема или локальная? Очень просто: сверните лист книги и щелкните правой кнопкой мыши по рабочему столу. Контекстное меню появилось? Значит объяснение стоит искать в Excel. Реакции нет? Проверяйте операционную систему или подключенные устройства.

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


Работает макрос, запрещающий вызов контекстного меню

Макрос - это специальный код (мини-программа), написанный на языке, понятном Excel. Он предназначен для выполнения каких-то определенных, чаще всего повторяющихся, действий. Таких макросов можно создавать сколько угодно, вы даже можете объединить их в свою личную книгу, задав для активации каждой команды определенную комбинацию клавиш.

Макросы в Excel пользуются большой популярностью, поскольку позволяют здорово оптимизировать работу. Однако, иногда они преподносят «сюрпризы». Пример – наша ситуация, когда в Эксель, внезапно и без причины, не работает правая мышь.

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

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

Если правая кнопка мыши перестала работать вот прям только что, вспоминайте, в какой очередности открывали файлы, листы и книги. Далее, действуйте в обратном порядке. Пройдитесь по всем документам, по всем модулям. Везде проверяйте функциональность клавиши. У вас есть реальная возможность отыскать файл Excel, в котором стоит макрос, изменяющий работу программы (блокирующий правую кнопку). Возможно, когда вы вышли из этого файла, случился глюк, и система не вернула настройки на место или применила их ко всем книгам. Как только найдете «нулевого пациента», отключите данный код. Где его искать?

  • Откройте вкладку «Вид» и найдите крайний правый подраздел (вверху), который так и называется: «Макросы»;
  • Щелкните, выберите пункт «Макросы»;


  • Разыщите в списке незнакомые или новые;
  • Выделите и выберите справа клавишу «Удалить»;
  • Или в нижней части окошка кликните по выпадающей вкладке и вместо значения «Все открытые книги» выберите «Эта книга». Теперь данный макрос работает только в настоящем документе.
  • Иногда разыскать в уйме поступивших файлов лагающий скрипт невозможно. Или слишком долго. Особенно, если они поступают от разных источников (например, много людей постоянно сдают вам работу в Excel документах). Поэтому, поступите проще: просто отключите этот макрос во всех книгах Excel, выбрав в выпадающем списке значение «Все открытые книги».


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

  • Откройте Excel и нажмите «Alt+F11» (на некоторых ноутбуках +FN);
  • Откроется Visual Basic for Application (VBA-редактор);
  • Выделите лист командой клавиш «Ctrl+R» и пройдите по пути Insert – Module;
  • В окно редактора вставьте код:
    Sub Reset_All_Bars()
    Dim cmbComBar As CommandBar
    On Error Resume Next
    For Each cmbComBar In CommandBars
    cmbComBar.Reset: cmbComBar.Enabled = True': cmbComBar.Visible = True
    Next cmbComBar
    End Sub
  • Чтобы его активировать, нажмите кнопку F5;
  • Готово, закрывайте редактор и проверяйте, работает ли теперь правая кнопка мыши в Эксель.


Неправильный выход из приложения

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

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

Сбой в работе Excel

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

Поломка оборудования

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

Также, проблема может быть связана с клавиатурой. Причем тут клава? Возможно на ней зажаты какие-то клавиши-модификаторы (Ctrl, Alt, Fn, Caps Lock и т.д.), которые и блокируют одновременную работу правой кнопки.

Залипание кнопок клавиатуры явление нередкое, особенно, если устройство - уже видавшее виды и солидно пожившее. Внутри скопилась пыль, грязь, кнопки, банально, износились.

Попробуйте временно отсоединить клавиатуру или выключить (если на ней есть клавиша отключения) и проверьте, будет ли работать мышь.


«Шалит» операционная система

Переустановка Винды – неизбежно необходимая периодически мера. Задуматься о ее целесообразности позволят не только проблемы с Excel, но и другие «звоночки». Например, участившиеся явления «синего экрана», общая заторможенность компа, долгие загрузки документов, правая кнопка не работает, причем, не только в Excel и т.д.

Вирусы

Тут все банально просто: запустите на компе глобальную проверку на вирусы. Скорее всего кнопка не работает не поэтому, но вреда сие действо точно не принесет.

Конфликт с подключенным принтером

Еще, правая кнопка мыши в Excel 2016 может не работать из-за неправильной настройки параметров конфигурации принтера.

  • Зайдите в проводник (Пуск) и выберите раздел «Устройства и принтеры»;
  • Правой кнопкой мыши выберите «Microsoft XPS Document Writer»;
  • Установите значение «Использовать по умолчанию»;
  • Готово.


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

Excel

Постановка задачи

И так у меня есть виртуальная машина ESXI с гостевой операционной системой Windows Server 2019. Один из сотрудников обратился с проблемой, что у него перестало в Ecxel копироваться содержимое ячеек в другие ячейки. Выглядело это вот так. Сначала при открытии Ecxel 2016 появлялась ошибка:

Невозможно использовать связывание и внедрение объектов (cannot use object linking and embedding)

Невозможно использовать связывание и внедрение объектов

Далее если попытаться скопировать одну ячейку в другую:

Приложению Microsoft Excel не удалось вставить данные (Microsoft Excel was unable to insert data)

Приложению Excel не удалось вставить данные

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

Что сделать если не удается копировать и вставлять данные на листе

Первое, что вы должны сделать, это обязательно установить все имеющиеся обновления для Microsoft Office, напоминаю делается это через параметры Windows, раздел "Обновление и Безопасность".

Как обновить Ecxel

Далее перейдите в дополнительные параметры.

Дополнительные параметры центра обновления Windows 10

Убедитесь, что установлена галка "При обновлении Windows предоставить обновления для других продуктов Microsoft"

При обновлении Windows предоставить обновления для других продуктов Microsoft

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

Установка обновлений Microsoft Office

Отключение надстроек в безопасном режиме

У Microsoft Excel есть как и у Windows безопасный режим, который позволяет проверить работу приложения с минимальными настройками. Для того, чтобы вам запустить Excel в безопасном режиме, нужно зажать клавишу CTRL и запустить само приложение.

Запуск Excel в безопасном режиме

Далее вам нужно перейти в меню "Файл".

Меню файл в Excel

Далее переходим в параметры.

Параметры Excel

Переходим в пункт "Надстройки". Посмотрите какие из них у вас находятся в активном состоянии и по очереди отключайте. Проверьте помогло ли это решить ошибку "Невозможно использовать связывание и внедрение объектов (cannot use object linking and embedding)".

Надстройки Excel

Восстановление Microsoft Office

Следующий метод, который может помочь в устранении ошибки "Приложению Microsoft Excel не удалось вставить данные (Microsoft Excel was unable to insert data)", это попробовать произвести восстановление офисного пакета. Чтобы это осуществить, вам необходим вызвать окно выполнить и вписать в нем:

Открываем appwiz.cpl

В открывшемся окне "Программы и компоненты" вам необходимо выбрать в списке ваш офисный пакет, у меня это "Microsoft Office профессиональный плюс 2016" и в самом верху нажать кнопку "Изменить".

Восстановление Microsoft Office

В списке доступных операций, выберите "Восстановить".

Как можно восстановить MS Office

Начинается процесс восстановления Microsoft Office и в том числе его пакета Excel. Данная операция может быть не такой быстрой, поэтому придется подождать минут 5-10.

Ход восстановления Microsoft Office

Проверка учетной записи в DCOM

Ранее я вам рассказывал, как производится настройка DCOM для Exel, кото не читал посмотрите. DCOM - это программная конструкция, которая позволяет компьютеру запускать программы по сети на другом компьютере, как если бы программа выполнялась локально. DCOM - это аббревиатура от Distributed Component Object Model. Если вы получаете ошибку "Невозможно использовать связывание и внедрение объектов (cannot use object linking and embedding)", то с большой долей вероятности у вас используется для запуска не тот режим. Чтобы это проверить, вновь вызовите окно выполнить и введите:

dcomcnfg

Откройте "Службы компонентов - Компьютеры - Приложения COM+ - Настройка DCOM - Microsoft Excel Application (Component Services - Computers - My computer - DCOM Config - Microsoft Excel Application)". Щелкните правым кликом по "Microsoft Excel Application" и перейдите в его свойства.

Microsoft Excel Application

Перейдите на вкладку "Удостоверение (Identity)" и удостоверьтесь, что у вас выставлен пункт "Запускающий пользователь (The launching user)".

DCOM запускающий пользователь

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

Невозможно использовать связывание и внедрение объектов (cannot use object linking and embedding)

Как только я выставил правильные настройки у меня заработала вставка содержимого ячеек Exel и ошибка "Приложению Microsoft Excel не удалось вставить данные (Microsoft Excel was unable to insert data)" исчезла.

Очистка временных файлов

Еще одним способом устранения проблем с копированием ячеек в Excel является очистка временных данных из профиля пользователя, для этого вам необходимо включить скрытые папки Windows. Далее перейти по пути:

C:\Users\имя пользователя\AppData\Roaming\Microsoft\Excel

Не забудьте только выбрать своего пользователя. В результате у вас появится папка XLSTART или еще какие-то, попробуйте их вырезать или удалить. После чего запустите Microsoft Excel и проверьте, дало ли это эффект.

Очистка временных файлов Excel

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

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