Excel макрос перенос ячеек

Вырезание, перемещение, копирование и вставка ячеек (диапазонов) в VBA Excel. Методы Cut, Copy и PasteSpecial объекта Range, метод Paste объекта Worksheet.

Метод Range.Cut

Range.Cut – это метод, который вырезает объект Range (диапазон ячеек) в буфер обмена или перемещает его в указанное место на рабочем листе.

Синтаксис

Параметры

Параметры Описание
Destination Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен (перемещен) вырезанный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект вырезается в буфер обмена.

Для вставки на рабочий лист диапазона ячеек, вырезанного в буфер обмена методом Range.Cut, следует использовать метод Worksheet.Paste.

Метод Range.Copy

Range.Copy – это метод, который копирует объект Range (диапазон ячеек) в буфер обмена или в указанное место на рабочем листе.

Синтаксис

Параметры

Параметры Описание
Destination Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен скопированный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект копируется в буфер обмена.

Метод Worksheet.Paste

Worksheet.Paste – это метод, который вставляет содержимое буфера обмена на рабочий лист.

Синтаксис

Worksheet.Paste (Destination, Link)

Метод Worksheet.Paste работает как с диапазонами ячеек, вырезанными в буфер обмена методом Range.Cut, так и скопированными в буфер обмена методом Range.Copy.

Параметры

Параметры Описание
Destination Необязательный параметр. Диапазон (ячейка), указывающий место вставки содержимого буфера обмена. Если этот параметр не указан, используется текущий выделенный объект.
Link Необязательный параметр. Булево значение, которое указывает, устанавливать ли ссылку на источник вставленных данных: True – устанавливать, False – не устанавливать (значение по умолчанию).

В выражении с методом Worksheet.Paste можно указать только один из параметров: или Destination, или Link.

Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, форматы, примечания и т.д.), а также для проведения транспонирования и вычислений, используйте метод Range.PasteSpecial (специальная вставка).

Примеры

Вырезание и вставка диапазона одной строкой (перемещение):

Range(«A1:C3»).Cut Range(«E1»)

Вырезание ячеек в буфер обмена и вставка методом ActiveSheet.Paste:

Range(«A1:C3»).Cut

ActiveSheet.Paste Range(«E1»)

Копирование и вставка диапазона одной строкой:

Range(«A18:C20»).Copy Range(«E18»)

Копирование ячеек в буфер обмена и вставка методом ActiveSheet.Paste:

Range(«A18:C20»).Copy

ActiveSheet.Paste Range(«E18»)

Копирование одной ячейки и вставка ее данных во все ячейки заданного диапазона:

Range(«A1»).Copy Range(«B1:D10»)


Содержание

  • Перемещение ячеек
    • Способ 1: перемещение с помощью копирования
    • Способ 2: перетаскивание
    • Способ 3: применение макросов
  • Вопросы и ответы

Перемещение ячеек относительно друг друга в Microsoft Excel

Потребность поменять ячейки местами друг с другом при работе в таблице Microsoft Excel случается довольно редко. Тем не менее, такие ситуации бывают и их нужно решать. Давайте выясним, какими способами можно поменять ячейки местами в Экселе.

Перемещение ячеек

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

Способ 1: перемещение с помощью копирования

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

  1. Выделяем ячейку, которую следует переместить. Жмем на кнопку «Копировать». Она размещена на ленте во вкладке «Главная» в группе настроек «Буфер обмена».
  2. Копирование ячейки в Microsoft Excel

  3. Выделяем любой другой пустой элемент на листе. Жмем на кнопку «Вставить». Она находится в том же блоке инструментов на ленте, что и кнопка «Копировать», но в отличие от неё имеет гораздо более заметный вид из-за своих размеров.
  4. Вставка данных в Microsoft Excel

  5. Далее переходим ко второй ячейке, данные которой нужно переместить на место первой. Выделяем её и опять жмем на кнопку «Копировать».
  6. Копирование второй ячейки в Microsoft Excel

  7. Выделяем курсором первую ячейку с данными и жмем на кнопку «Вставить» на ленте.
  8. Вставка второго значения в Microsoft Excel

  9. Одно значение мы переместили, куда нам нужно. Теперь возвращаемся к тому значению, которое мы вставили в пустую ячейку. Выделяем его и жмем на кнопку «Копировать».
  10. Копирование ячейки из буферной области в Microsoft Excel

  11. Выделяем вторую ячейку, в которую нужно переместить данные. Жмем на кнопку «Вставить» на ленте.
  12. Вставка данных в Microsoft Excel

  13. Итак, нужные данные мы поменяли местами. Теперь следует удалить содержимое транзитной ячейки. Выделяем её и щелкаем правой кнопкой мыши. В контекстном меню, которое активировалось после этих действий, переходим по пункту «Очистить содержимое».

Очистка содержимого в Microsoft Excel

Теперь транзитные данные удалены, а задача по перемещению ячеек полностью выполнена.

Ячейки перемещены в Microsoft Excel

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

Способ 2: перетаскивание

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

Lumpics.ru

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

Перемещение ячейки в Microsoft Excel

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

Ячейки перемещены в программе Microsoft Excel

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

Ячейки перемещены со сдвигом диапазона в Microsoft Excel

Способ 3: применение макросов

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

  1. Прежде всего, нужно включить у себя в программе режим работы с макросами и панель разработчика, если вы их до сих пор не активировали, так как по умолчанию они отключены.
  2. Далее переходим во вкладку «Разработчик». Выполняем щелчок по кнопке «Visual Basic», которая размещена на ленте в блоке инструментов «Код».
  3. Переход в редактор макросов в Microsoft Excel

  4. Выполняется запуск редактора. В него нужно вставить следующий код:

    Sub ПеремещениеЯчеек()
    Dim ra As Range: Set ra = Selection
    msg1 = "Произведите выделение ДВУХ диапазонов идентичного размера"
    msg2 = "Произведите выделение двух диапазонов ИДЕНТИЧНОГО размера"
    If ra.Areas.Count 2 Then MsgBox msg1, vbCritical, "Проблема": Exit Sub
    If ra.Areas(1).Count ra.Areas(2).Count Then MsgBox msg2, vbCritical, "Проблема": Exit Sub
    Application.ScreenUpdating = False
    arr2 = ra.Areas(2).Value
    ra.Areas(2).Value = ra.Areas(1).Value
    ra.Areas(1).Value = arr2
    End Sub

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

  5. Вставка кода в Microsoft Excel

  6. Выделяем две ячейки или два диапазона равных размеров, которые хотим поменять местами. Для этого кликаем по первому элементу (диапазону) левой кнопкой мыши. Затем зажимаем кнопку Ctrl на клавиатуре и также кликаем левой кнопкой мышки по второй ячейке (диапазону).
  7. Выделение ячеек в Microsoft Excel

  8. Чтобы запустить макрос, жмем на кнопку «Макросы», размещенную на ленте во вкладке «Разработчик» в группе инструментов «Код».
  9. Переход к запуску макроса в Microsoft Excel

  10. Открывается окно выбора макроса. Отмечаем нужный элемент и жмем на кнопку «Выполнить».
  11. Запуск макроса в Microsoft Excel

  12. После этого действия макрос автоматически меняет содержимое выделенных ячеек местами.

Макрос поменял ячейки местами в Microsoft Excel

Важно отметить, что при закрытии файла макрос автоматически удаляется, так что в следующий раз его придется записывать снова. Чтобы не делать эту работу каждый раз для конкретной книги, если вы планируете в ней постоянно проводить подобные перемещения, то следует сохранить файл как Книгу Excel с поддержкой макросов (xlsm).

Урок: Как создать макрос в Excel

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

Еще статьи по данной теме:

Помогла ли Вам статья?

 

yesican

Пользователь

Сообщений: 5
Регистрация: 28.08.2017

Добрый день!
Сам чайник, на форуме не нашел подходящего решения. Буду признателен за помощь в простом макросе.
Задача: ЕСЛИ в ЛИСТ1 в ячейке C2 значение «Пройдено», ТО перенести ячейки A2, B2, C2 на ЛИСТ2.
При этом, важно, чтобы старые данные (перенесенные ранее) не дублировались, а обновлялись. Пр появлении новых данных (нового признака «Пройдено»), добавлялась новая строка снизу.

Во вложении пример таблицы.

 

kuklp

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

#2

28.08.2017 10:25:36

Если

Цитата
yesican написал:
Сам чайник

тот откуда взяли что

Цитата
yesican написал:
в простом макросе

?

Я сам — дурнее всякого примера! …

 

Serghey1900

Пользователь

Сообщений: 38
Регистрация: 25.07.2017

#3

28.08.2017 11:40:40

А на листе1 со временем данные как будут обновляться? Слово «Пройдено» будет появляться в тех же строках, где сейчас его нет, или будут добавляться новые строки? К пример ваш файл потом станет таким:

Скрытый текст

Или таким:

Скрытый текст

?

И еще уточняющий вопрос — указанная строка с Ивановым, должна быть именно снизу таблицы во втором листе?

Изменено: Serghey190028.08.2017 11:46:03

 

yesican

Пользователь

Сообщений: 5
Регистрация: 28.08.2017

Сергей, здравствуйте!
Спасибо за отклик!
Слово «Пройдено» может появляться в тех строках, где его нет. Например, в одном случае Иванов Иван «Не пройдено» в ячейке C2 может измениться на «Пройдено». В этом случае (в идеале) в Листе 2, после запуска макроса, обновленная информация должна подтянуться в старую строку, без добавления новой (дублирования).

Если это сложно, то можно упростить: простой перенос всех строк, где в столбце C2 имеется «пройдено» (без дублирования строк). Если второй раз обновляем (или нажимаем на кнопку), то просто обновляется весь лист, перенося все строки с «пройдено».

 

На листе2 в принципе же не должна была появиться строка без слова «пройдено»?

Я так понимаю, что есть обновляемый список на листе1. В нем в определенном столбце может стоять слово «пройдено» или любое другое слово. А может быть вообще пустая ячейка.
Задача — перетянуть на лист2 первые три ячейки всех строк, содержащий в определенном столбце слово «пройдено». При чем, если кто-то обновит лист1, то макрос должен пересчитать лист2 заново. Таким образом, если кто-нибудь вставит дополнительную строку внутри старых значений, то макрос на листе 2 это тоже учтет. Так?
Макрос должен считаться автоматически или пользователь сам его будет вызывать, например кнопкой?

 

yesican

Пользователь

Сообщений: 5
Регистрация: 28.08.2017

#6

28.08.2017 13:15:52

Цитата
Serghey1900 написал:
о макрос на листе 2

Да, ТЗ понято правильно.
Наличие кнопки не обязательно, если это будет проходить в автоматическом режиме.
Спасибо!

 

Serghey1900

Пользователь

Сообщений: 38
Регистрация: 25.07.2017

#7

28.08.2017 16:52:48

Попробуйте этот файл.
При внесении изменений в колонку C:C на листе «Лист1»:

Скрытый текст

запускается макрос находящийся в отдельном модуле:

Скрытый текст

Макрос копирует с первой по третью колонки из первого листа «Лист1» и вставляет их на «Лист2» тем самым замещая все данные. Затем на листе «Лист2» он удаляет все строки, которые не содержат ячейку «Пройдено». При этом ячейки содержащие похожие значения, например «Не пройдено» тоже удаляются.

Остается вопрос с дублированием данных. Если данные будут дублироваться на первом листе, то будут продублированы и на втором.
Вопросы к вам:
1. Будут ли они дублироваться на первом листе?
2. Если они будут дублироваться на первом листе, то должны ли они дублироваться на втором?
3. Если при полном дублировании фамилии и имени будут разниться данные по обучению, то как это должно отразиться на листе «Лист2»?

Прикрепленные файлы

  • example.xlsm (18.52 КБ)

Изменено: Serghey190028.08.2017 16:54:07

 

yesican

Пользователь

Сообщений: 5
Регистрация: 28.08.2017

Сергей, огромное спасибо!

С уважением,
Александр Маилянц

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Еще вариант. «повесил на кнопку»  ;)  

«Все гениальное просто, а все простое гениально!!!»

 

yesican

Пользователь

Сообщений: 5
Регистрация: 28.08.2017

Есть добрый люди! :).
Спасибо огромное! И этот вариант попробуем использовать.
Сейчас буду тестировать  немного попробую подкорректировать с учетом финального файла.

—————————
Желаю, чтобы всем вам воздалась ответом (х3) в других сферах жизни.

 

issadyk2

Пользователь

Сообщений: 11
Регистрация: 28.08.2017

По какой причине удалили мой пост????  

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Что у Вас там было?
Вопрос с другой задачей? Создайте свою тему

 

issadyk2

Пользователь

Сообщений: 11
Регистрация: 28.08.2017

Вопрос был связан с переносом данных из одной таблицы в другую посредством макроса.  

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#14

31.08.2017 10:26:35

У Вас задача точь-в точь такая же?

Цитата
 2.6. Один вопрос — одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.

Тем более в чужой теме, где обсуждение вопроса автора еще не закончено.

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

Содержание

  1. Процедура перемещения ячеек
    • Метод 1: копирование
    • Метод 2: перетаскивание
    • Метод 3: использование макросов
  2. Заключение

Процедура перемещения ячеек

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

Метод 1: копирование

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

  1. Встаем в первую ячейку (выделяем ее), которую планируем переместить. Находясь в главной вкладке программы нажимаем на кнопку “Копировать” (группа инструментов “Буфер обмена”). Также можно просто нажать комбинацию клавиш Ctrl+C.Копирование ячейки в Эксель
  2. Переходим в любую свободную ячейку на листе и нажимаем кнопку “Вставить” в той же вкладке и группе инструментов. Или можно снова воспользоваться горячими клавишами – Ctrl+V.Вставка скопированных данных в Эксель
  3. Теперь выделяем вторую ячейку, с которой хотим поменять местами первую, и также копируем ее.Копирование ячейки в Excel
  4. Встаем в первую ячейку и жмем кнопку “Вставить” (или Ctrl+V).Вставка скопированных данных в Excel
  5. Теперь выделяем ячейку, в которую было скопировано значение из первой ячейки и копируем ее.Копирование данных в Эксель
  6. Переходим во вторую ячейку, куда нужно вставить данные, и нажимаем соответствующую кнопку на ленте.Вставка скопированной ячейки в Эксель
  7. Выбранные элементы успешно поменяны местами. Ячейка, в которой временно размещались скопированные данные, больше не нужна. Щелкаем по ней правой кнопкой мыши и в открывшемся меню выбираем команду “Удалить”.Удаление ячейки в Эксель
  8. В зависимости от того, есть ли рядом с данной ячейкой заполненные элементы справа/снизу или нет, выбираем соответствующий вариант удаления и жмем кнопку OK.Выбор варианта удаления ячейки в Excel
  9. Вот и все, что нужно было сделать для того, чтобы поменять ячейки местами.Результата перемещения ячеек относительно друг друга в Эксель

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

Метод 2: перетаскивание

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

  1. Выбираем ячейку, которую планируем переместить в новое место. Наводим курсор мыши на ее границу, и как только он изменит вид на привычный указатель (с 4 стрелками в разные стороны на конце), нажав и не отпуская клавишу Shift, выполняем перенос ячейки в новое место с помощью зажатой левой кнопки мыши.Перемещение ячейки в Эксель
  2. Чаще всего, этот метод используется для того, чтобы поменять местами соседние ячейки, так как сдвиг элементов в данном случае не нарушит структуру таблицы.Смежные ячейки в Эксель
  3. Если мы решим переместить ячейку через несколько других, это повлечет за собой изменение расположения всех остальных элементов.Перемещение ячейки в Excel
  4. После этого придется восстанавливать порядок.Диапазон ячеек в Эксель

Метод 3: использование макросов

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

  1. Для начала нужно убедиться в том, что в приложении активирован так называемый “режим разработчика” (по умолчанию выключен). Для этого:
  2. Переключаемся во вкладку “Разработчик”, где жмем по значку “Visual Basic” (группа инструментов “Код”).Переход в редактор Visual Basic в Эксель
  3. В редакторе, нажав на кнопку “View Code”, вставляем в появившемся окне код ниже:
    Sub ПеремещениеЯчеек()
    Dim ra As Range: Set ra = Selection
    msg1 = "Произведите выделение ДВУХ диапазонов идентичного размера"
    msg2 = "Произведите выделение двух диапазонов ИДЕНТИЧНОГО размера"
    If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, "Проблема": Exit Sub
    If ra.Areas(1).Count <> ra.Areas(2).Count Then MsgBox msg2, vbCritical, "Проблема": Exit Sub
    Application.ScreenUpdating = False
    arr2 = ra.Areas(2).Value
    ra.Areas(2).Value = ra.Areas(1).Value
    ra.Areas(1).Value = arr2
    End Sub
    Код для макроса замены ячеек местами в Эксель
  4. Закрываем окно редактора, щелкнув привычную кнопку в виде крестика в верхнем правом углу.
  5. Зажав клавишу Ctrl на клавиатуре выделяем две ячейки или две области с одинаковым количество элементов, которые планируем поменять местами. Затем нажимаем кнопку “Макросы” (вкладка “Разработчик”, группа “Код”).Активация макроса в Эксель для выбранных ячеек
  6. Появится окно, в котором мы видим ранее созданный макрос. Выбираем его и щелкаем “Выполнить”.Выбор макроса в Excel
  7. В результате работы макрос поменяет местами содержимое выделенных ячеек.Результат замены местами ячеек в Эксель с помощью макроса

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

Сохранение документа Excel с поддержкой макросов

Заключение

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

На чтение 5 мин Опубликовано 26.12.2020

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

Содержание

  1. Первый способ: копирование
  2. Второй способ: сдвиг ячеек
  3. Третий способ: применение макросов
  4. Подведем итоги

Первый способ: копирование

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

  1. У нас есть таблица с сохраненными данными. Из нее необходимо перенести несколько ячеек в произвольную часть листа. Для этого кликаем по одной из них, затем в панели инструментов во вкладке «Главная» находим значение «Копировать». Также можно выделив ячейку, сделать клик правой кнопкой мыши и выбрать «Копировать» через контекстное меню. Быстрый способ скопировать данные — одновременно нажать комбинацию клавиш «Ctrl+C».

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

1
  1. Проверяем скопировалось ли значение. Для этого заходим в «Буфер обмена». Он расположен во вкладке «Главная» в первом блоке. Кликаем по стрелке вниз и в открывшемся окне слева видим скопированный только что текст или число. Это значит, что копирование данных выполнить удалось.

Обратите внимание! Если нажать «Очистить все», то копирование придется сделать заново, потому как данные удалятся.

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

2
  1. Теперь на листе выбираем место, в которое желаем переместить содержимое ячейки, нажимаем комбинацию клавиш «Ctrl+V» или же вызываем контекстное меню с помощью ПКМ, где кликаем по пункту «Вставить». Можно пользоваться инструментом «Специальная вкладка», который позволяет выполнить настройку вставки скопированного значения.

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

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

Второй способ: сдвиг ячеек

Иначе это называется перетаскивание. Выполнить его не сложно, главное проследить, чтобы все данные были скопированы, иначе перенос будет выполнен с искажением. Рассмотрим подробности в алгоритме ниже:

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

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

Третий способ: применение макросов

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

  1. Переходим в меню «Файл», затем в нижней части списка переходим к пункту «Параметры».

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

4
  1. Открывается окно «Параметры Excel», здесь необходимо кликнуть по пункту «Настроить ленту» и поставить галочку напротив пункта «Разработчик». Подтверждаем свои действия кнопкой «ОК».

Сразу обратите внимание на панель вкладок, вкладка с названием «Разработчик должна появиться в самом конце.

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

5
  1. После переключаемся на вкладку «Разработчик», в ней находим инструмент «Visual Basic». Visual Basic — это индивидуальный редактор данных. Необходимо дождаться загрузки дополнительного окна.

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

6
  1. После открытия вспомогательной программы настроек ищем блок инструментов «Код», он нам и потребуется для корректного редактирования. Находим раздел «View Code», в открывшееся поле вставляем специальный код, который указан ниже:

Sub ПеремещениеЯчеек()
Dim ra As Range: Set ra = Selection
msg1 = «Произведите выделение ДВУХ диапазонов идентичного размера»
msg2 = «Произведите выделение двух диапазонов ИДЕНТИЧНОГО размера»
If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, «Проблема»: Exit Sub
If ra.Areas(1).Count <> ra.Areas(2).Count Then MsgBox msg2, vbCritical, «Проблема»: Exit Sub
Application.ScreenUpdating = False
arr2 = ra.Areas(2).Value
ra.Areas(2).Value = ra.Areas(1).Value
ra.Areas(1).Value = arr2
End Sub

  1. Следом жмем кнопку «Enter», чтобы данные сохранились. После сохранения можно закрыть окно редактора и продолжить редактирование.

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

7
  1. Зажимаем клавишу «Ctrl», затем выделяем одинаковое количество строк и столбцов, чтобы получился равномерный со всех сторон диапазон. Теперь переходим к разделу «Макросы» в панели инструментов, кликаем по нему, открывается окно с функцией. Жмем кнопку «Выполнить».

3-sposoba-kak-pomenyat-mestami-yachejki-v-excel

8
  1. Итог данного процесса — смена местоположения ячеек в пределах одного листа.

На заметку! Существует возможность переноса индивидуальных ячеек и их диапазонов с одного листа Excel на другой, причем для этого используется только один многостраничный файл.

Подведем итоги

Для новичков больше подойдут первые два варианта переноса ячеек. Они не требуют углубленных знаний программы Microsoft Excel и работают в разных версиях табличного процессора. Что касается макросов, то использование данной методики довольно сложное, очень важно ничего не перепутать, иначе велик риск совершить ошибку и вовсе отформатировать всю страницу без возврата данных, поэтому при переносе ячеек рекомендуется быть предельно внимательными.

Оцените качество статьи. Нам важно ваше мнение:

С этим макросом данные копируются на другой лист, но при этом стирается 1 строка названием столбцов, и следующая вставка ячеек происходит со второй строки, надо чтобы данные вносились после последней заполненной строки, при этом оставался заголов 1 строки с названиями столбцов
[moder]
Не надо цитировать посты целиком, это нарушение Правил форума.[/moder]

С этим макросом данные копируются на другой лист, но при этом стирается 1 строка названием столбцов, и следующая вставка ячеек происходит со второй строки, надо чтобы данные вносились после последней заполненной строки, при этом оставался заголов 1 строки с названиями столбцов
[moder]
Не надо цитировать посты целиком, это нарушение Правил форума.[/moder] Controler

Сообщение цитата удалена

С этим макросом данные копируются на другой лист, но при этом стирается 1 строка названием столбцов, и следующая вставка ячеек происходит со второй строки, надо чтобы данные вносились после последней заполненной строки, при этом оставался заголов 1 строки с названиями столбцов
[moder]
Не надо цитировать посты целиком, это нарушение Правил форума.[/moder] Автор — Controler
Дата добавления — 14.03.2016 в 08:56

Источник

5 различных методов переноса данных с одного листа Excel на другой

Как мы все знаем, Microsoft Excel – очень полезная и популярная рабочая книга, которую пользователи могут хранить любые важные данные.

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

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

Итак, просто внимательно просмотрите этот блог.

Практический сценарий

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

У меня есть рабочая тетрадь с 6 листами внутри; один из листов – мастер; это просто остальные 6 листов, составленные в один большой. Мне нужно настроить его так, чтобы любые новые данные, введенные в новые отдельные листы, автоматически вводились в мастер-лист в первой пустой строке.

Столбцы не одинаковы на всех листах. . Надеюсь, здесь профи будет легче, чем мне, в этом я бился головой о стену. Я буду тщательно проверять эту ветку, поэтому, если вам понадобится дополнительная информация, просто дайте мне знать …

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

Источник: https://ccm.net/forum/affich-1019001-automatically-update-master-worksheet-from- другие рабочие листы

Методы передачи данных из одной книги Excel в другую

Существует множество различных способов переноса данных из одной книги Excel в другую , и они следующие:

Метод № 1: автоматически Обновление одного листа Excel с другого листа

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

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

Ниже приведены две разные точки для связывания Excel. данные книги для автоматических обновлений.

1) С использованием функции копирования и вставки

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

  • Сохраните всю свою работу из исходного рабочего листа перед его закрытием.

2) Введите формулу вручную

  • Откройте целевой рабочий лист, коснитесь ячейки, в которой есть формула связи, и поместите знак равенства (=) поперек нее.
  • Теперь перейдите к источник ш eet и коснитесь ячейки, в которой есть данные. нажмите Enter на клавиатуре и сохраните свои задачи.

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

Метод № 2: обновить электронную таблицу Excel данными из другой электронной таблицы

Чтобы обновить электронные таблицы Excel данными из другой электронной таблицы, просто следуйте приведенным ниже пунктам, которые будут применимы к версии Excel 2019, 2016, 2013, 2010, 2007.

  • Сначала перейдите в меню Данные .
  • Выберите параметр Обновить все

  • Здесь вы должны увидеть, когда и как обновляется соединение
  • Теперь щелкните любую ячейку, содержащую подключенные данные.
  • Снова в меню Данные , cli ck на стрелке рядом с параметром Обновить все и выберите Свойства соединения

  • После этого в меню Использование установите параметры которые вы хотите изменить.
  • На вкладке Использование установите любые параметры, которые вы хотите изменить.

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

Метод № 3: Как автоматически скопировать данные из одной ячейки в другую в Excel

Чтобы скопировать данные из одной ячейки в другую в Excel, просто выполните следующие пункты, указанные ниже:

  • Сначала откройте исходный рабочий лист и целевой рабочий лист.
  • На исходном листе перейдите к листу, который вы хотите переместить или скопировать.
  • Теперь нажмите меню Главная и выберите параметр Формат .
  • Затем выберите «Переместить или скопировать лист» в разделе «Организовать листы».
  • После этого снова в в меню Главная выберите параметр Формат в группе ячеек.
  • Здесь в Переместить или скопировать выберите целевой лист, и Excel отобразит только открытые листы в списке.

  • Иначе, если вы хотите скопировать рабочий лист вместо перемещения, сделайте копию книги Excel перед

  • Наконец, нажмите ОК кнопку, чтобы скопировать или переместить целевую электронную таблицу Excel.

Метод № 4: Как скопировать данные с одного листа на другой в Excel с помощью формулы

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

  • Для копирования и вставки ячейки Excel в текущий рабочий лист Excel, , например; скопируйте ячейку От A1 до D5, вы можете просто выбрать целевую ячейку D5, затем ввести = A1 и нажать клавишу Enter, чтобы получить значение A1.
  • Для копирования и вставки ячеек с одного рабочего листа на другой, например скопируйте ячейку A1 листа Sheet1 в ячейку D5 листа Sheet2, выберите ячейку D5 на листе Sheet2, затем введите = Sheet1! A1 и нажмите клавишу Enter, чтобы получить значение.

Метод № 5: копирование данных с одного листа на другой в Excel с помощью макросов

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

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

Sub OpenWorkbook ()
‘Открыть книгу
‘Метод открытия требует ссылки на полный путь к файлу.
Workbooks.Open «C: Users username Documents New Data.xlsx»

‘ Метод открытия имеет дополнительные параметры
‘Workbooks.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

Sub CloseWorkbook ()
‘Закройте книгу
Workbooks («New Data.xlsx»). Close SaveChanges: = True
‘Метод Close имеет дополнительные параметры
‘ Workbooks.Close (SaveChanges, Filename, RouteWorkbook)

Рекомендуемое решение: средство восстановления и восстановления MS Excel

Когда вы выполняете свою работу в MS Excel и по ошибке или случайно делаете это не сохранять данные книги, иначе ваш рабочий лист будет удален, тогда у нас есть для вас профессиональный инструмент восстановления, например MS Excel Repair & Recovery Tool .

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

Шаги по использованию средства восстановления и восстановления MS Excel:

Заключение:

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

Я надеюсь, что вы удовлетворены приведенными выше методами, предоставленными вам по обновлению листа Excel .

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

Маргрет

Маргрет Артур – предприниматель и эксперт по контент-маркетингу. Она ведет технические блоги и специализируется на MS Office, Excel и других технических вопросах. Ее отличительное искусство подачи технической информации простым для понимания языком очень впечатляет. Когда не пишет, она любит незапланированные путешествия.

MicroKnowledge, Inc.

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

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

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

  • Новые данные, добавленные в основной лист, будут автоматически заполняться на соответствующих подмножествах листов.
  • Мастер-лист можно сортировать и фильтровать сам по себе, не затрагивая подмножества листов.
  • Функции и диаграммы, анализирующие данные на любом листе, должны автоматически подстраиваться под новые данные.

Звучит сложно? Это не так!

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

(Эта функция также доступна в предыдущих версиях Excel. )

  1. Создайте все нужные листы в книге. Здесь я создал лист для каждого представителя службы поддержки.
  2. Создайте именованный диапазон для своей главной таблицы. Выделите данные в своей таблице (включая заголовки), введите e введите имя диапазона в поле имени слева от строки формул, затем нажмите Enter. Именованный диапазон необходим Microsoft Query для выбора данных для анализа.
  3. Создайте таблицу из вашей главной таблицы. Выделите свои данные, как описано выше. Откройте вкладку Вставить . Щелкните Таблица . Этот шаг немного избыточен, но преобразование ваших данных в таблицу имеет массу преимуществ, главное из которых состоит в том, что при добавлении в нее новых данных она автоматически расширяется для сбора новых данных. В свою очередь, это также автоматически расширит ваш именованный диапазон.
  4. Перейдите на лист, на который вы хотите поместить результаты запроса. Это может быть другой рабочий лист или даже другая книга.
  5. Щелкните вкладку Данные . Нажмите Из других источников . Выберите Из Microsoft Query . Откроется окно Выбрать источник данных .
  6. Выберите файлы Excel. Нажмите ОК . Откроется окно Выбрать книгу .
  7. Найдите и выберите книгу для запроса. Обратите внимание, что это может быть та же книга, что и открытая в данный момент. Нажмите ОК . Отображается Мастер запросов .
  8. Должны появиться ваши именованные диапазоны в левой части окна в виде таблицы. Я выберу все столбцы слева, чтобы показать их на листах подмножества. Щелкните Далее .
  9. На шаге мастера «Фильтровать данные» выберите фильтрацию данных, которые вы хотите отобразить на этом листе. Здесь я делаю лист Джерри, поэтому мне нужны только данные, где Назначено равно Джерри. Нажмите Далее .
  10. Выполните оставшиеся шаги в мастера, пока вы не будете готовы выбрать место назначения для ваших данных. В диалоговом окне Импорт данных убедитесь, что Таблица выбрана в качестве способа вставки ваших данных.. Я решил вставить данные в A1 на листе Джерри.
  11. Поскольку вы вставили данные в качестве таблицы у вас есть особая возможность Обновить, если вы вносите какие-либо изменения в основную таблицу. Вы можете найти Обновить на вкладке «Данные» или на вкладке «Работа с таблицами» Дизайн .

Вам понадобится повторить шаги 4–11 для каждого имеющегося у вас подмножества листов. Но как только все это настроено, у вас есть небольшая симпатичная база данных Excel!

Источник

Adblock
detector

0 / 0 / 0

Регистрация: 09.01.2013

Сообщений: 13

1

09.01.2013, 18:33. Показов 17981. Ответов 12


Студворк — интернет-сервис помощи студентам

Добрый день. Делаю очень большой древовидный список в Excel. Часто приходится перетаскивать ячейку на 1 вправо. A1 -> A2, B3->B4 и т.д. Можно ли как-то делать это действие горячими клавишами? Наверное требуется макрос. Если кто подскажет такой — буду очень благодарен. Спасибо.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.01.2013, 19:18

2

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



0



0 / 0 / 0

Регистрация: 09.01.2013

Сообщений: 13

09.01.2013, 19:58

 [ТС]

3

Цитата
Сообщение от lehachgtop
Посмотреть сообщение

перетаскивать ячейку на 1 вправо. A1 -> A2, B3->B4

Ошибся. A1 -> B2, B3 -> C3 и т.д.

Сделал примерную книгу. Если бы можно было одной клавишей (или простой комбинацией клавиш) перемещать содержимое ячейки в ячейку соседнего столбца справа — это в разы бы ускорило работу.



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.01.2013, 20:07

4

lehachgtop, вот по такому принципу можно перемещать данные из активной ячейки в ячейку, находящуюся справа:

Visual Basic
1
2
3
4
5
6
7
8
9
Sub Макрос1()
    
    'Offset(0, 1) - это ячейка, которая находится
        'в той же строке, но в следующем столбце.
    ActiveCell.Offset(0, 1).Value = ActiveCell.Value
    'Очистка активной ячейки.
    ActiveCell.Formula = ""
    
End Sub

А как вызывать этот макрос — вам решать. Можно сочетание клавиш сделать. Ещё у листа есть события, например, при двойном клике по ячейке можно вызывать макрос.



1



0 / 0 / 0

Регистрация: 09.01.2013

Сообщений: 13

09.01.2013, 21:02

 [ТС]

5

А можно с помощью макроса сделать выделение ячеек (фон)? Например я выделил 6 ячеек, жму клавиши, и макрос выделяет заданным цветом фон.



0



Igor_Tr

4377 / 661 / 36

Регистрация: 17.01.2010

Сообщений: 2,134

09.01.2013, 21:22

6

Можно, конечно! Но зачем с помощью макроса, и жать клавиши?

Visual Basic
1
[a1].Interior.ColorIndex = 10 ' зеленый

Осталось Вам только продумать, как программа, по каким критериям, будет определять ячейки под заливку.



0



0 / 0 / 0

Регистрация: 09.01.2013

Сообщений: 13

09.01.2013, 22:06

 [ТС]

7

Цитата
Сообщение от Igor_Tr
Посмотреть сообщение

как программа, по каким критериям, будет определять ячейки под заливку.

Но это должен определять я вручную. Быстрее всего — с горячими клавишами.



0



Igor_Tr

4377 / 661 / 36

Регистрация: 17.01.2010

Сообщений: 2,134

10.01.2013, 00:17

8

Хорошо, давайте по другому. Чем Вы будете руководствоваться при выделении вручную? Наличием текста?, символов?, цифр?, комбинациями? Вот это и научите железяку. Она послушная. Например, если у Вас в ячейке встречаеться число 2 — закрасить! немедленно!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub ЗАЛИТЬ_Желтым()
Dim mRng As Range
Dim endRow As Long
Dim aCell As Object
'заносим, для примера, данные:
    [a3] = 2: [b4] = 2: [d5] = 2
    [b1] = "abd": [b6] = "24 asdf": [d2] = "и т.д."
    endRow = ActiveSheet.UsedRange.Row - 1 + _
                ActiveSheet.UsedRange.Rows.Count
Set mRng = Range("a1:d" & endRow)
    With mRng 
        For Each aCell In .Cells
            If aCell.Value = 2 Then ' если в ячейке число 2...
                aCell.Interior.ColorIndex = 36 ' ...залить его чемто желтим!
            End If
        Next
    End With
End Sub

А вобще есть еще много способов сделать это-же.

Добавлено через 16 минут
А вобще Вы можете воспользоваться условным форматированием, и, возможно, Вам VBA никчему.



0



0 / 0 / 0

Регистрация: 09.01.2013

Сообщений: 13

10.01.2013, 08:54

 [ТС]

9

Цитата
Сообщение от Igor_Tr
Посмотреть сообщение

Чем Вы будете руководствоваться при выделении вручную? Наличием текста?, символов?, цифр?, комбинациями? Вот это и научите железяку.

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

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



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

10.01.2013, 09:15

10

Код, который делают заливку у выделенных ячеек:

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub Макрос1()
    
    'Selection - это выделенные ячейки.
    
    'Вместо "Color" можно использовать "ColorIndex".
    '"ColorIndex" - это порядковый номер
    'цвета в палитре цветов программы Excel (палитра - это набор цветов).
    'Чтобы посмотреть порядковые номера цветов для "ColorIndex"
    'в поле для поиска (в правом верхнем углу VBA)
    'введите это "ColorIndex Property" и нажмите клавишу "Enter".
    'Выберите "ColorIndex Property".
    
    'Чтобы узнать, какое число записать в коде VBA для "Color",
    'сделайте следующее:
        '1) перейдите в программу Excel;
        '2) сделайте у ячейки нужную заливку;
        '3) сделайте эту ячейку активной;
        '4) перейдите в VBA;
        '5) View - Immediate Window. Внизу появится область.
            'В эту область вставьте этот код и нажмите клавишу "Enter":
            'Print ActiveCell.Interior.Color
        '6) будет получено число, которое нужно подставить в код.
    
    Selection.Interior.Color = 255
    
End Sub



0



Igor_Tr

4377 / 661 / 36

Регистрация: 17.01.2010

Сообщений: 2,134

10.01.2013, 14:43

11

Мне кажется, что можно. Велик, байк и велосипед — а что у них общего? Все это средства передвижения, которые можно обьеденить в группу, например RemedForMovement. Создайте массив — и вперед. Главное — экспериментируйте, иначе Вам и святой Франциск не поможет. Но если Вам нравится в ручную — тоже не плохо. Ручная работа ценится во всем мире.

Добавлено через 2 часа 12 минут
Передышка голове (моей).
Создаем кнопку на активном листе:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub CreateCommShp()
'Создание кнопки запуска заливки
 
Dim mShp As Shape
' проверка наличия кнопки запуска
For Each mShp In ActiveSheet.Shapes
    If mShp.Name = "Начало" Then
        mShp.Select
        Selection.Characters.Text = "Залить! Немедленно!" ' _
                                                изменяем текст кнопки
        [a1].Select ' убрали выделение кнопки
        Exit Sub
    End If
Next
' если кнопки не существует - создать!
    With ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, _
                                                        300#, 30.75, 100, 28.5)
        .Fill.ForeColor.SchemeColor = 42
        .ScaleWidth 1.26, msoFalse, msoScaleFromTopLeft
        .ScaleHeight 0.64, msoFalse, msoScaleFromTopLeft
        .Name = "Начало"
        .OnAction = "PourColor" ' пристегнули к "кнопке" макрос
    End With
 
    ActiveSheet.Shapes("Начало").Select
        With Selection
            .Characters.Text = "Залить!" ' Текст в "кнопку"
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
        End With
     Application.CutCopyMode = False
    [a1].Select
    
End Sub

Из этого макроса запускаем заливку (а стоило это трудов? Не проще было выделить и выбрать цвет на панели?)
Но раз Вам так этого хотелось — пожалуйста!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub PourColor()
    Dim mRng As Range
    'Выделите мышью любое кол-во ячеек, удерживая <Сtrl>
 
    Set mRng = Selection
    Call CreateCommShp
        With mRng
            .Interior.ColorIndex = 36
        End With
    ActiveSheet.Shapes("Начало").Select
    Selection.Characters.Text = "Ужас! Получилось!" ' _
                    изменили текст кнопки.
    [a1].Select
 
End Sub

К кнопке еще можно добавить розочки, бантики… и все это группировать. По вкусу



1



0 / 0 / 0

Регистрация: 05.11.2015

Сообщений: 11

17.07.2013, 16:18

12

Ребят подскажите пожалуйста, а как написать перенос каждой второй строки столбца А в столбец Б??чтобы можно было сделать это действие по 100 позициям



0



Igor_Tr

4377 / 661 / 36

Регистрация: 17.01.2010

Сообщений: 2,134

17.07.2013, 16:36

13

Как-будто кол-во позиций не имеет очень значение. Больше значит, в каком виде они должны быть в столбце В. С пропусками, или все нужные подряд?

Добавлено через 12 минут
Если для примера, вот так получится с пробелами:

Visual Basic
1
2
3
4
5
6
7
8
Sub adf()
Dim marr(), i&
   marr = Range([a1], Cells(Rows.Count, "a").End(xlUp)).Value
      For i = LBound(marr, 1) To UBound(marr, 1) Step 2
         marr(i, 1) = vbNullString
      Next 'i
   [b1].Resize(UBound(marr, 1), 1).Value = marr
End Sub



3



Перенос заполненных ячеек на другой лист этой же книги

Controler

Дата: Понедельник, 14.03.2016, 07:52 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

Всем добрый день!

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

[vba]

Код

Sub Перенос()
Sheets(«Отчет за сутки).Range(«A:j»).SpecialCells(2).Copy Sheets(«Отчет за 2016 г.»).Range(«A» & Rows.Count).End(xlUp)
ThisWorkbook.Sheets(«Отчет за сутки»).Copy
Sheets(«Отчет за сутки»).Range(«a2:j10»).ClearContents
MsgBox («Данные в отчет за 2016 г. внесены!»)
End Sub

[/vba]

У меня почему копируются ячейки с названием столбцов, а мне нужно чтобы копировались только данные
[moder]Оформляйте коды тегами (кнопка #). На первый раз исправила[/moder]

К сообщению приложен файл:

2192281.xls
(76.0 Kb)

 

Ответить

KuklP

Дата: Понедельник, 14.03.2016, 08:30 |
Сообщение № 2

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

[vba]

Код

Sub Перенос()
    With ThisWorkbook.Sheets(«Отчет за сутки»)
        .Range(«A2:j» & .Cells(.Rows.Count, 1).End(xlUp).Row).SpecialCells(2).Copy Sheets(«Отчет за 2016 г.»).Range(«A» & Rows.Count).End(xlUp)
        .Copy
        .Range(«A2:j» & .Cells(.Rows.Count, 1).End(xlUp).Row).ClearContents
        MsgBox («Данные в отчет за 2016 г. внесены!»)
    End With
End Sub

[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Controler

Дата: Понедельник, 14.03.2016, 08:56 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

цитата удалена

С этим макросом данные копируются на другой лист, но при этом стирается 1 строка названием столбцов, и следующая вставка ячеек происходит со второй строки, надо чтобы данные вносились после последней заполненной строки, при этом оставался заголов 1 строки с названиями столбцов
[moder]
Не надо цитировать посты целиком, это нарушение Правил форума.[/moder]

 

Ответить

KuklP

Дата: Понедельник, 14.03.2016, 09:45 |
Сообщение № 4

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

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


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Controler

Дата: Понедельник, 14.03.2016, 10:47 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

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

К сообщению приложен файл:

0258731.xls
(81.5 Kb)

 

Ответить

KuklP

Дата: Понедельник, 14.03.2016, 10:58 |
Сообщение № 6

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

И что не так? Попробовал — все внеслось, записалось, скопировалось и очистилось. Заголовки нетронуты. В Вашем макросе кстати будет затираться последняя строка в Отчет за 2016 г. Если это не планировалось специально, то лучше:
[vba]

Код

        .Range(«A2:j» & .Cells(.Rows.Count, 1).End(xlUp).Row).SpecialCells(2).Copy Sheets(«Отчет за 2016 г.»).Range(«A» & Rows.Count).End(xlUp)(2)

[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Excel макрос перенос строки
  • Excel макрос перемещение по листам
  • Excel макрос переменная лист
  • Excel макрос переменная в адресе ячейки
  • Excel макрос перевода числа в текст в excel