Excel перенос строк с одного листа в другой

 

AnatoliyAN

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

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

Помогите, пожалуйста! Вторую неделю не могу найти вариант решения… Есть «База», нужно, чтобы при введении слова договор в ячейку «Статус» вся строка перенеслась на другой лист «Д.Газ» (или хотя бы скопировалась автоматически на другой лист). За ранее благодарю всех за помощь.

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#2

22.07.2015 16:11:14

В код листа «База»:

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

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AnatoliyAN

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

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

А как это ввести в код листа?

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

ПКМ по имени листа, исходный текст. Файл сохранить в двоичном или формате поддерживающем хранение макросов. И загляните в ПРИЁМЫ, там про макросы тоже есть информация.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AnatoliyAN

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

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

не работает :(. может я что-то не правильно сделал… Могу попросить Вас в тот файл, что я загрузил вставить этот макрос?

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Пожалуйста.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AlexTM

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

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

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

JayBhagavan, код не срабатывает, если вписать слово договор не последовательно, а, например, сразу ниже на десять ячеек… Просто наблюдение, ибо учусь :oops:

 

AnatoliyAN

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

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

спасибо! работает! :) , но JayBhagavan прав — если вводить не последовательно — не работает. Это можно исправить?

 

AlexTM

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

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

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

#9

22.07.2015 17:29:43

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set trgt_rng = Range([D2], [D2].End(xlDown))
    If Target.Count = 1 Then
       If Target.Value = "Договор" Then
            Set out_rng = Worksheets("Д.Газ").[A1].Offset(Cells.Rows.Count - 1).End(xlUp).Offset(1)
            Target.EntireRow.Copy out_rng
            Application.CutCopyMode = False
        End If
    End If
End Sub
 

AlexTM

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

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

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

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

 

AlexTM

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

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

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

 

AlexTM

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

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

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

AnatoliyAN, поинтересуйтесь у знатоков, как модифицировать код, чтобы можно было удалять или изменять перенесенную строку. Например, если вдруг договор отменился… тогда нужно будет строку удалить, например, по другому кодовому слову «Отмена» с поиском ее на листе Д.Газ. Ну, а там, сами смотрите…

 

AnatoliyAN

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

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

Ура!!! Спасибо. Работает!!! Вы мне ОЧЕНЬ помогли :)

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#14

22.07.2015 17:44:33

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set trgt_rng = Range([D2], [D2].End(xlDown))
    If Not Intersect(trgt_rng, Target) Is Nothing And Target.Cells(1).Value = "Договор" Then
        Set out_rng = Worksheets("Д.Газ").[A1].Offset(Cells.Rows.Count - 1).End(xlUp).Offset(1)
        Target.EntireRow.Copy out_rng
        Application.CutCopyMode = False
    End If
End Sub

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AnatoliyAN

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

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

#15

22.07.2015 18:09:23

Цитата
AlexTM написал:… как модифицировать код, чтобы можно было удалять или изменять перенесенную строку

Єто было бы вообще идеально, еслибы они автоматически удалялись при таком условии…

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

AnatoliyAN, опишите какое(ие) поле(я) являются идентификаторами записи и тогда можно будет и отмену реализовать.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AlexTM

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

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

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

AnatoliyAN, сия заслуга JayBhagavan
JayBhagavan, наверное, индикатором записи/удаления будет одно и то же поле… Но вопрошающий знает наверняка  :)

 

AnatoliyAN

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

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

Всем, здравствуйте! Благодарю Вас за неравнодушие к моей проблеме! По поводу индикатора: колонка «статус». Наверное самое удобное, чтобы при внесении в ячейку колонки «статус» слова «договор» вся строка копируется в лист «Д.Газ», а при удалении из этой ячейки слова «договор» скопированная строка тоже автоматически удаляется с листа «Д.Газ»

 

Cors

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

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

Здравствуйте!
Тема очень актуальна. Уже внедряю этот макрос. Только мне нужен захват не всей строки, а нескольких ячеек в строке с индикатором.
Если Вам не трудно, подскажите новичку как в коде это прописать. Например, нужен отбор из листа «База» в лист «Д.Газ» только инфы со столбцов Наименование и Инфо.
Спасибо.

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#20

23.07.2015 16:12:20

AnatoliyAN, попробую ещё раз донести до Вас свою мысль, т.к. моя формулировка, увы, не понятна Вам осталась. Макрос скопировал некую строку, если вместо договор Вы укажете отмена, например, то макрос по полю «№» будет удалять строку? Поле «№» всегда уникально для каждой записи? А вообще, это тема помощи, а не работа, потому старайтесь и сами хоть что-то сделать.

Cors, замените строку:

Код
Target.EntireRow.Copy out_rng

на, например, такое:

Код
range("a" & Target.row & ",c" & Target.row & ",n" & Target.row).Copy out_rng

Не проверял, потому тестируйте.

Изменено: JayBhagavan23.07.2015 16:13:45
(забыл .Copy в примере написать)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Cors

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

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

JayBhagavan, большое спасибо! Все работает. Сейчас буду затачивать под свою таблицу.
По ходу надо углубляться в VBA, уж больно полезное.

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

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#22

23.07.2015 17:32:59

Cors, не за что. Лучше не злоупотреблять добротой — это приводит к нарушению правил. (один вопрос — одна тема)

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

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

китин

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

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

как то очень мне это

знакомо.

что там было не так?

Изменено: китин23.07.2015 17:54:13

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

icemen

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

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

Здравствуйте!
Огромное спасибо за Ваши подсказки, многие мне очень хорошо помогли.
Но у меня так и не получается перенести из одного листа (Заявки) в другой (Выдачи) не всю строку, а только ее часть ( из D (Заявки) — в C (Выдачи), из F (Заявки) — в H (Выдачи), из G (Заявки) — в I (Выдачи)). Все работает при смене статуса (Ячейка H (Заявки)).
Огромная просьба помочь в данной ситуации. Заранее большое спасибо!

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#25

13.10.2015 22:19:27

icemen, здравия.

Цитата
icemen написал:
( из D (Заявки) — в C (Выдачи), из F (Заявки) — в H (Выдачи), из G (Заявки) — в I (Выдачи)). Все работает при смене статуса (Ячейка H (Заявки)).

Сдаётся мне, что Вы что-то путаете, но сделал почти так как просили — не делал перемещение, а только копирование, чтобы Вы поняли так или нет Вы хотели. В код листа «Заявки»:

Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wbf As Worksheet, wbd As Worksheet, c_row&, l_row&
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("H:H")) Is Nothing Then
        If Target.Value = "ЗАКР" Then
            Application.EnableEvents = False
            c_row = Target.Row
            Set wbf = ThisWorkbook.Worksheets("Заявки")
            Set wbd = ThisWorkbook.Worksheets("Выдачи")
            wbd.Range("Таблица2[#Totals]").ListObject.ListRows.Add
            l_row = wbd.Range("A1").End(xlDown).Row + 1
            wbd.Range("A" & l_row).FillDown
            wbd.Range("C" & l_row).Value = wbf.Range("D" & c_row).Value
            wbd.Range("H" & l_row).Value = wbf.Range("F" & c_row).Value
            wbd.Range("I" & l_row).Value = wbf.Range("G" & c_row).Value
            Application.EnableEvents = True
        End If
    End If
End Sub

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

icemen

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

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

Не знаю сейчас правильно Вас понял или нет, но я ПКМ на вкладке «Заявки», Исходный текст в окно вставил код, который вы прислали, сохранил и пру проставлении статуса ЗАКР у меня выдает ошибку. Извините, если я делаю не правильно, в этом у меня мало опыта. Заранее еще раз большое спасибо.

wbd.Range(«Таблица2[#Totals]»).ListObject.ListRows.Add — в коде выделяется

ЖЕЛТЫМ.

Изменено: icemen14.10.2015 19:17:59

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

icemen, приложите файл, в котором возникает ошибка, т.к. на примере у меня ошибок не было.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

icemen

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

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

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#29

15.10.2015 09:37:33

icemen, пробуйте:

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

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

icemen

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

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

#30

15.10.2015 12:44:54

Делаю как и описывал уже с новым кодом, но у меня все равно подгружаются не те данные в лист «Выдача». Скрин прикладываю.

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

  • Безымянный.jpg (89.19 КБ)

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

Приведу три способа Автоматического переноса данных с одного листа программы «Эксель» в другой.

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

Рассмотрим, как соединить две таблицы по шагам.

Первый шаг.

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

Второй шаг.

Копировать информацию сочетанием клавиш ctrl+C или вызвав контекстное меню правой кнопкой мыши и кликнув по пункту меню «Копировать»

Копировать данные из одной таблицы

Третий шаг.

Перейти на лист документа «Excel», в который Вы планируете транслировать информацию из первой таблицы.

Четвертый шаг.

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

После вставки связи следует отформатировать вид ячеек – привести их к надлежащему виду.

Результат вставки связи

Результат вставки связи

Второй способ переноса данных из одной таблицы в другую — это использование сводных таблиц в программе «Excel».

При использовании данного метода роль второй таблицы («реципиента») играет сама сводная таблица.

Как обновить сводную таблицу

Как обновить сводную таблицу

При клике правой кнопкой мыши по сводной таблице и нажатии на пункт «Обновить» сводная таблица автоматически перенесет все данные из связанного массива информации («таблицы донора»).

О том, как в «Эксель» создавать сводные таблицы подробно написано в статье:

Как делать сводные таблицы в программе «Excel» и для чего они нужны.

Третий способ самый эффективный и наиболее автоматизированный — это использование меню надстройки «Power Query».

Правда нужно отметить, что этот способ подходит только пользователям   Excel 2016 и пользователям Excel 2013и выше с установленной надстройкой «Power Query».

Смысл способа в следующем:

Необходимо открыть вкладку «Power Query». В разделе «Данные Excel» нажимаем кнопку (пиктограмму) «Из таблицы».

Из таблицы -Power Query

Из таблицы -Power Query

Далее нужно выбрать диапазон ячеек, из которых нужно «притянуть» информацию и нажимаем «Ок».

Источник данных для запроса Power Query

Источник данных для запроса Power Query

После выбора области данных появится окно настройки вида новой таблицы. В этом окне Вы можете настроить последовательность вывода столбцов и удалить ненужные столбцы.Настройка таблицы в Повер Квери

После настройки вида таблицы нажмите кнопку «Закрыть и загрузить»

Обновление полученной таблицы происходит кликом правой кнопки мыши по названию нужного запроса в правой части листа (список «Запросы книги»). После клика правой кнопкой мыши в выпадающем контекстном меню следует нажать на пункт «Обновить»

Обновление запроса в PowerQuery

Обновление запроса в PowerQuery

0 / 0 / 0

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

Сообщений: 4

1

Перенос всех строк с заданным условием на другой лист

30.06.2016, 21:23. Показов 56025. Ответов 20


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

Здравствуйте.

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

К примеру, у меня есть набор данных, из которых я хочу вычленить только те, где значение столбца URL = *instagram.com и перенести на другой лист вместе со всеми другими параметрами.

Читала много тем на форуме, но никак не могу провести параллели со своей задачей.

Очень буду рада помощи! Спасибо.

тест.xlsx



0



5942 / 3154 / 698

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

Сообщений: 10,524

30.06.2016, 21:25

2

Расширенный фильтр посмотрите



0



0 / 0 / 0

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

Сообщений: 4

30.06.2016, 21:32

 [ТС]

3

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

Пол дня сегодня промучилась над этим вопросом( Голова уже не соображает.

Если в примере я привела двадцать строк, то по работе я имею дело с массивом в несколько тысяч.

Мальчик занимавшийся макросами уволился, а на меня всех собак повесили.
Если кто может объяснить доходчиво, я попробую написать сама, но за что хвататься — не знаю!



0



5942 / 3154 / 698

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

Сообщений: 10,524

30.06.2016, 22:02

4

testpa, скопируйте на этот же лист, потом перенесете на другой лист



0



4131 / 2235 / 940

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

Сообщений: 4,624

30.06.2016, 22:13

5

Лучший ответ Сообщение было отмечено testpa как решение

Решение

testpa, Если

перед

тем, как вызвать диалоговое окно Расширенный фильтр, Вы активируете рабочий лист, куда необходимо скопировать все отфильтрованные данные, то всё сработает. А если захотите немного упростить себе жизнь, то в аттаче сможете найти пример с тем же расширенным фильтром.



3



0 / 0 / 0

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

Сообщений: 4

30.06.2016, 22:28

 [ТС]

6

Огромное спасибо! Все работает!!! Даже с кнопочкой

Но как вы это сделали?? Я вас очень прошу, объясните мне поэтапно, если после рабочего дня на это остались силы и терпение. Я не могу тупо пользоваться уже готовым( Если задача поменяется и нужно будет менять какие-то условия, то сяду в лужу. Хочется понять принцип работы, чтобы самой в дальнейшем решать. Нужно головой не только кушать)

Тысячи благодарностей вам)



0



4131 / 2235 / 940

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

Сообщений: 4,624

30.06.2016, 22:44

7

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

Миниатюры

Перенос всех строк с заданным условием на другой лист
 



0



0 / 0 / 0

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

Сообщений: 4

30.06.2016, 23:19

 [ТС]

8

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

Добавлено через 9 минут
pashulka, и последнее) Скажите, а можно вот этот уже готовый фильтр превратить в макрос (и сделать для него такую же красивую кнопочку, как у вас).



0



4131 / 2235 / 940

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

Сообщений: 4,624

30.06.2016, 23:39

9



0



0 / 0 / 0

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

Сообщений: 13

07.06.2020, 01:01

10

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



0



4131 / 2235 / 940

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

Сообщений: 4,624

07.06.2020, 08:26

11

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

Или говорите более предметно, файл с абстрактными данными (в виде .xls/.xlsx, не картинки) в виде нескольких десятков строк. И что нужно копировать, по какому принципу(критерию). И не помешает сказать, сколько в реальности строк.



0



0 / 0 / 0

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

Сообщений: 13

07.06.2020, 11:48

12

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

В файле лист «Данные» строк будет не более 1500. По столбцу, выделенной красной заливкой, будет происходить фильтрование, по аналогии с сообщениями девушки выше (vk.com, facebook.com, и т.д.)

В листе «Выборка» — готовый вид отфильтрованных значений.



0



4131 / 2235 / 940

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

Сообщений: 4,624

07.06.2020, 13:43

13

В файле нет переноса только избранных столбцов.
А чтобы избежать очистки данных лишних столбцов, достаточно явно указать столбцы, т.е. вместо
wsSheet2.[A5].CurrentRegion.Clear написать что-то вроде wsSheet2.Range(«A5:H» & Rows.Count).Clear

или wsSheet2.Range(«A5:H» & wsSheet2.Rows.Count).Clear если в момент выполнения макроса — активным может быть лист, не имеющий ячеек, например, лист диаграммы



1



0 / 0 / 0

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

Сообщений: 13

07.06.2020, 21:02

14

pashulka, Превосходно и Волшебно!

Я прошу прощения за столь яркие эмоции, просто сам только буквально вчера начал изучать макросы.

Огромнейшее спасибо!!!

С Днем Святой Троицы!



0



0 / 0 / 0

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

Сообщений: 4

14.11.2020, 18:22

15

Здравствуйте!

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

Буду признательна.



0



2628 / 1634 / 744

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

Сообщений: 5,135

14.11.2020, 18:25

16

teacher6,
Прикрепите файл- пример …
Покажите в нем исходные данные ( 3-4 строки) и что хотите получить…



0



2628 / 1634 / 744

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

Сообщений: 5,135

14.11.2020, 23:52

17

teacher6,

Если используете файл Паши, то уберите звездочки (*) перед словом и после него

Миниатюры

Перенос всех строк с заданным условием на другой лист
 



0



0 / 0 / 0

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

Сообщений: 4

23.11.2020, 08:54

18

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



0



Narimanych

2628 / 1634 / 744

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

Сообщений: 5,135

23.11.2020, 10:42

19

teacher6,
Для вашего файла:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub MMM()
With Worksheets("Óïîìèíàíèÿ")
        Set R1 = Range(.Cells(4, 2), .Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 9))
        ARR1 = R1.Value
End With
M = 1
With Worksheets("Ðåçóëüòàò")
ReDim ARR2(1 To UBound(ARR1), 1 To UBound(ARR1, 2))
 SS = .Cells(2, 1).Value
        For i = 1 To UBound(ARR1)
            If ARR1(i, 3) = SS Then
              For j = 1 To UBound(ARR1, 2)
                ARR2(M, j) = ARR1(i, j)
              Next
              M = M + 1
        End If
        Next
Range(.Cells(6, 1), .Cells(200, 8)).ClearContents
  .Cells(6, 1).Resize(UBound(ARR2), UBound(ARR2, 2)).Value = ARR2
        
End With
End Sub



0



0 / 0 / 0

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

Сообщений: 1

07.04.2021, 11:18

20

Подскажите пожалуйста, как сделать: есть таблица excel, состоящая из трех листов. Необходимо, чтобы при вводе «done» в столбце T вся строка из первого листа копировалась на 3 лист. Спасибо.



0



Содержание

  1. Ответы (1)
  2. Как перенести строки в Excel на новый лист?
  3. Перенос строки в ячейке
  4. Как перенести текст в ячейке на новую строку
  5. Как заменить перенос строки на пробел
  6. Просмотр разрывов страниц
  7. Перемещение разрыва страницы
  8. Удаление разрыва страницы, добавленного вручную
  9. Удаление всех разрывов страниц, добавленных вручную
  10. Просмотр разрывов страниц
  11. Вставка горизонтального или вертикального разрыва станицы вручную
  12. Перемещение разрыва страницы
  13. Удаление разрыва страницы, добавленного вручную
  14. Удаление всех разрывов страниц, добавленных вручную
  15. Дополнительные сведения

43 просмотра

1 ответ

28 Репутация автора

Я пытаюсь перенести две строки Sheet1 (случайным образом и на основе определенных критериев) в Sheet3.

Значения в ячейках «P2» и «P5» указывают номер строки, подлежащей передаче, а столбец «A» имеет номера строк.

Нет никакой возможности, чтобы значения в «P2» и «P5» могли совпадать с несколькими строками в столбце «A». Они должны соответствовать 1 строке каждая, поэтому для «P2» и «P5» должна быть скопирована только одна строка. Тем не менее, иногда я вижу, как копируются несколько строк.

Ниже приведен код:

Ответы (1)

0 плюса

30188 Репутация автора

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

Чтобы объединить два условия, в вашем случае добавьте Or к вашему If .

Чтобы запустить код быстрее, не Select и Activate различные листов, это занимает много времени для запуска приложения. Вместо этого используйте Range объект, как CopyRng и каждый раз, когда if критерии в порядке, вы добавляете эту ячейку в диапазон, используя Union функцию. Читайте ЗДЕСЬ о Union функциональности.

Больше комментариев в примечаниях кода ниже.

Модифицированный код

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

Как перенести строки в Excel на новый лист?

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

Пользователю дается возможность:

1. Быстро вызывать диалоговое окно надстройки одним кликом по кнопке, расположенной на одной из вкладок ленты Excel;

2. Задавать как одно, так и несколько значений для поиска, используя в качестве знака-разделителя «;» точку с запятой;

3. Учитывать либо не учитывать регистр при поиске текстовых значений;

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

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

а) совпадает либо не совпадает с искомым значением;

б) содержит либо не содержит искомое значение;

в) начинается либо не начинается с искомого значения;

г) заканчивается либо не заканчивается искомым значением.

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

Перенос строки в ячейке

Как перенести текст в ячейке на новую строку

Для того чтобы в пределах одной ячейки перенести текст на новую строку, необходимо для переноса текста нажимать сочетание клавиш Alt+Enter.

Как заменить перенос строки на пробел

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

можно увидеть, что приложением используется код с номером 10 и названием «Перевод строки», которому соответствует сочетание клавиш Ctrl+J. Зная это, можно удалить переносы строки при помощи стандартного средства Excel, таким как «Найти и заменить». Для этого необходимо вызвать диалоговое окно сочетанием клавиш Ctrl+F (при этом поле останется пустым), перейти на вкладку «Заменить», поместить курсор в поле «Найти», нажать сочетание клавиш Ctrl+J и нажать кнопку «Заменить» либо «Заменить все». Аналогичным образом можно заменить перенос строки на пробел.

Замену перевода строки на любой символ, например на пробел, можно осуществить и при помощи макроса.

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

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

Разрывы страниц отображаются в Режиме разметки страницы.

Просмотр разрывов страниц

Чтобы просмотреть страницу разрывы с помощью Страничный режим:

Нажмите кнопку Страничный в строке состояния .

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

Вставка горизонтального или вертикального разрыва станицы вручную

Выполните одно из указанных ниже действий.

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

Горизонтальный разрыв страницы

Выделите строку ниже той, после которой нужно вставить разрыв страницы.

Вертикальный разрыв страницы

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

На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку разрывы и выберите команду Вставить разрыв страницы.

Перемещение разрыва страницы

В меню Вид выберите пункт Страничный режим.

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

Примечание: После перемещения автоматический разрыв страницы считается вставленным вручную. Разрывы страниц, вставленные вручную, не изменяются автоматически.

Удаление разрыва страницы, добавленного вручную

Выполните одно из указанных ниже действий.

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

Горизонтальный разрыв страницы

Выделите строку ниже разрыва страницы.

Вертикальный разрыв страницы

Выделите столбец справа от разрыва страницы.

На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку разрывы и выберите команду Удалить разрыв страницы.

Удаление всех разрывов страниц, добавленных вручную

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

Просмотр разрывов страниц

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

В меню Файл выберите элемент Печать.

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

Нажмите кнопку Отмена.

На листе появятся синие пунктирные линии.

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

Вставка горизонтального или вертикального разрыва станицы вручную

Выполните одно из указанных ниже действий.

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

Горизонтальный разрыв страницы

Выделите строку ниже той, после которой нужно вставить разрыв страницы.

Вертикальный разрыв страницы

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

На вкладке Макет в группе Параметры страницы нажмите кнопку разрывы и выберите команду Вставить разрыв страницы.

Перемещение разрыва страницы

В меню Вид выберите пункт Обычный.

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

Примечание: После перемещения автоматический разрыв страницы считается вставленным вручную. Разрывы страниц, вставленные вручную, не изменяются автоматически.

Удаление разрыва страницы, добавленного вручную

Выполните одно из указанных ниже действий.

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

Горизонтальный разрыв страницы

Выделите строку ниже разрыва страницы.

Вертикальный разрыв страницы

Выделите столбец справа от разрыва страницы.

На вкладке Макет в группе Параметры страницы нажмите кнопку разрывы и выберите команду Удалить разрыв страницы.

Удаление всех разрывов страниц, добавленных вручную

На вкладке Макет в группе Параметры страницы нажмите кнопку разрывы и выберите команду Сброс разрывов страниц.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

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

Содержание

  1. Как осуществить перенос строк в таблице Excel
  2. Способ 1. С использованием мыши
  3. Способ 2. Через вставку
  4. Способ 3. С помощью копирования
  5. Когда может понадобиться перенос строк в Эксель

Как осуществить перенос строк в таблице Excel

Что же за волшебные методы такие? Есть три основных способа, как можно поменять строки местами в документе Excel:

  1. Использование стандартного инструмента копировать-вставить.
  2. Использование мыши для того, чтобы перенести строки.

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

Способ 1. С использованием мыши

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

  1. Перемещаем курсор на координатную панель. Там осуществляем левый клик мыши по той строке, которую нам необходимо переместить. Как перенести строки в Excel. Перенос строк в Эксель - 3 способа
  2. После этого перемещаем курсор на верхнюю границу какой-угодно из ячеек, которые входят в состав этого ряда. Важное замечание: перед выполнением следующей операции необходимо убедиться в том, что курсор принял вид стрелки с указателями в четыре разные стороны.
  3. После этого нажимаем клавишу Shift на клавиатуре и задерживаем ее. После этого перемещаем эту строку в подходящее место. Клавиша мыши также в это время должна быть зажатой. Клавиша Shift нужна для того, чтобы не возникло замены данных. Если перемещать строку с помощью одной лишь мыши, без задействования клавиатуры, то данные будут просто замещены, и придется все откатывать назад, чтобы не потерять информацию. Как перенести строки в Excel. Перенос строк в Эксель - 3 способа

Видим, что этот метод – простой и легкий. Главное – помнить о том, что нужно перемещать строку одновременно с зажатой клавишей Shift.

Как перенести строки в Excel. Перенос строк в Эксель - 3 способа

Способ 2. Через вставку

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

  1. Найти номер строки, которую нам нужно перенести, на панели координат и нажимаем на нее. После этого вся строка была выделена. Далее ищем в ленте блок «Буфер обмена», в котором ищем кнопку «Вырезать». Сам блок находится сразу в левой части ленты. Кроме этого, неплохой вариант – использование контекстного меню. Для этого нужно нажать по соответствующей строке правой кнопкой мыши и найти пункт «Вырезать». Также можно воспользоваться комбинацией клавиш Ctrl + X.Как перенести строки в Excel. Перенос строк в Эксель - 3 способа
  2. Далее необходимо осуществить правый клик мышью по той строке, которая располагается под тем местом, куда хочется вставить вырезанную строку. После этого в появившемся меню необходимо выбрать пункт «Вставить вырезанные ячейки». Как перенести строки в Excel. Перенос строк в Эксель - 3 способа
  3. После выполнения этих действий строка самостоятельно будет перемещена на правильное место. При этом изменений в последовательности других рядов не наблюдается. Как перенести строки в Excel. Перенос строк в Эксель - 3 способа

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

Способ 3. С помощью копирования

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

  1. Необходимо выделить ячейку в строке под той, куда мы хотим вставлять данные. Делаем клик правой кнопкой мыши и появляется контекстное меню. В нем необходимо выбрать пункт «Вставить». Как перенести строки в Excel. Перенос строк в Эксель - 3 способа
  2. После этого всплывет небольшое окно, где необходимо выбрать пункт «строку». Подтверждаем свои действия.
  3. После этого появится дополнительная строка, которую теперь нам нужно выделить тот ряд, который нам надо перенести в новосозданный.
  4. Нажимаем на него правой кнопкой мыши и копируем. Также можно воспользоваться соответствующим инструментом на ленте или же нажать на клавиши Ctrl + C. Пользователь может выбрать наиболее удобный для него способ. Как перенести строки в Excel. Перенос строк в Эксель - 3 способа
  5. После этого нажимаем на первую ячейку в новосозданном ряде и нажимаем «Вставить» или можно также воспользоваться комбинацией клавиш Ctrl + V. Как перенести строки в Excel. Перенос строк в Эксель - 3 способа
  6. Следующий этап – удаление дубликатов. Для этого делаем клик правой кнопкой мыши ячейке из первоначальной строки и в появившемся перечне функций выбираем пункт «Удалить». Аналогично появится окно, в котором нам нужно выбрать пункт «строку» и подтвердить свои действия. Как перенести строки в Excel. Перенос строк в Эксель - 3 способа Как перенести строки в Excel. Перенос строк в Эксель - 3 способа

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Excel перенос строк в другую таблицу
  • Excel перенос страницы на лист
  • Excel перенос столбцов в ячейки
  • Excel перенос столбца в другой столбец
  • Excel перенос слов горячая клавиша