Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/перенос строчек из одной вкладки в другую - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » перенос строчек из одной вкладки в другую (Макросы/Sub)
перенос строчек из одной вкладки в другую
sunnyb Дата: Четверг, 24.11.2016, 23:16 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго вечера всем!
Столкнулся с проблемой, решение которой значительно облегчило бы рутинные задачи.
В Excel файле первый столбик служит заголовком для каждой строчки, заголовок или статус для строки всего двух вариантов - латинская буква "u" или "s".
Как написать VBA макрос, чтобы при его активации все строчки имеющие заголовок "s" из вкладки "1" были перенесены в следующую вкладку ("2") начиная с А3 и при этом в первой вкладке остались только строчки с заголовком "u" без пробелов между этими строчками.
 
Ответить
СообщениеДоброго вечера всем!
Столкнулся с проблемой, решение которой значительно облегчило бы рутинные задачи.
В Excel файле первый столбик служит заголовком для каждой строчки, заголовок или статус для строки всего двух вариантов - латинская буква "u" или "s".
Как написать VBA макрос, чтобы при его активации все строчки имеющие заголовок "s" из вкладки "1" были перенесены в следующую вкладку ("2") начиная с А3 и при этом в первой вкладке остались только строчки с заголовком "u" без пробелов между этими строчками.

Автор - sunnyb
Дата добавления - 24.11.2016 в 23:16
Pelena Дата: Пятница, 25.11.2016, 10:51 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Файл с примером ускорил бы решение проблемы


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеФайл с примером ускорил бы решение проблемы

Автор - Pelena
Дата добавления - 25.11.2016 в 10:51
sunnyb Дата: Суббота, 26.11.2016, 00:04 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
в приложении - пример
К сообщению приложен файл: before.xlsx (8.0 Kb) · after.xlsx (8.0 Kb)


Сообщение отредактировал sunnyb - Суббота, 26.11.2016, 00:07
 
Ответить
Сообщениев приложении - пример

Автор - sunnyb
Дата добавления - 26.11.2016 в 00:04
gling Дата: Суббота, 26.11.2016, 00:52 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2525
Репутация: 678 ±
Замечаний: 0% ±

2010
Как написать VBA макрос

Здравствуйте. Можно на первых порах попробовать записать все действия макрорекордером. Последовательность такая: включаете запись макроса--ставите на листе автофильтр--устанавливаете фильтр по букве u--копируете полученный диапазон--переходите на нужный лист --вставляете в нужную ячейку скопированное--возвращаетесь на первый лист--вновь выделяете диапазон с буквами u -- удаляете строки--снимаете автофильтр--выключаете запись макроса. Посмотрите что записалось макрорекордером, увеличьте при необходимости диапазон выделения. Теперь вы знаете что означает каждая написанная строка и можете её подправить при необходимость. А местные специалисты вам напишут, все будет работать, только чтобы подправить, придется снова обращаться на форум и просить о помощи.


ЯД-41001506838083

Сообщение отредактировал gling - Суббота, 26.11.2016, 00:54
 
Ответить
Сообщение
Как написать VBA макрос

Здравствуйте. Можно на первых порах попробовать записать все действия макрорекордером. Последовательность такая: включаете запись макроса--ставите на листе автофильтр--устанавливаете фильтр по букве u--копируете полученный диапазон--переходите на нужный лист --вставляете в нужную ячейку скопированное--возвращаетесь на первый лист--вновь выделяете диапазон с буквами u -- удаляете строки--снимаете автофильтр--выключаете запись макроса. Посмотрите что записалось макрорекордером, увеличьте при необходимости диапазон выделения. Теперь вы знаете что означает каждая написанная строка и можете её подправить при необходимость. А местные специалисты вам напишут, все будет работать, только чтобы подправить, придется снова обращаться на форум и просить о помощи.

Автор - gling
Дата добавления - 26.11.2016 в 00:52
Wasilich Дата: Суббота, 26.11.2016, 01:07 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Так пойдет?
[vba]
Код
Sub перенос()
  Dim L1 As Range, s&
  Dim L2 As Range, i&
  s = 4
  For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(i, 1) = "s" Then
      Set L1 = Sheets("1").Range("A" & i & ":E" & i)
      Set L2 = Sheets("2").Range("A" & s & ":E" & s)
      L1.Copy L2
      Cells(i, 1) = ""
      s = s + 1
    End If
  Next
  On Error Resume Next
  ActiveSheet.UsedRange.Columns(1).SpecialCells(4).EntireRow.Delete
End Sub
[/vba]
К сообщению приложен файл: sunnyb.xls (33.5 Kb)


Сообщение отредактировал Wasilich - Суббота, 26.11.2016, 01:12
 
Ответить
СообщениеТак пойдет?
[vba]
Код
Sub перенос()
  Dim L1 As Range, s&
  Dim L2 As Range, i&
  s = 4
  For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(i, 1) = "s" Then
      Set L1 = Sheets("1").Range("A" & i & ":E" & i)
      Set L2 = Sheets("2").Range("A" & s & ":E" & s)
      L1.Copy L2
      Cells(i, 1) = ""
      s = s + 1
    End If
  Next
  On Error Resume Next
  ActiveSheet.UsedRange.Columns(1).SpecialCells(4).EntireRow.Delete
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 26.11.2016 в 01:07
krosav4ig Дата: Суббота, 26.11.2016, 01:29 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
или так[vba]
Код
Sub d()
    Dim r As Range
    With [index(2!A:A,rows(A:A))].End(xlUp)
        Set r = IIf(.Row > 4, .Offset(1), [2!A4])
    End With
    [1!A:A].Replace "s", "=zz1", 1
    On Error Resume Next
    With [1!ZZ1].Dependents
        .Value = "s"
        .EntireRow.Copy r
        .EntireRow.Delete
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 26.11.2016, 01:31
 
Ответить
Сообщениеили так[vba]
Код
Sub d()
    Dim r As Range
    With [index(2!A:A,rows(A:A))].End(xlUp)
        Set r = IIf(.Row > 4, .Offset(1), [2!A4])
    End With
    [1!A:A].Replace "s", "=zz1", 1
    On Error Resume Next
    With [1!ZZ1].Dependents
        .Value = "s"
        .EntireRow.Copy r
        .EntireRow.Delete
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 26.11.2016 в 01:29
sunnyb Дата: Понедельник, 28.11.2016, 23:59 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
большое спасибо, все действительно работает!!
с макрорекордером тоже теперь буду пробовать находить решения, не пользовался им ранее!
 
Ответить
Сообщениебольшое спасибо, все действительно работает!!
с макрорекордером тоже теперь буду пробовать находить решения, не пользовался им ранее!

Автор - sunnyb
Дата добавления - 28.11.2016 в 23:59
Мир MS Excel » Вопросы и решения » Вопросы по VBA » перенос строчек из одной вкладки в другую (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!