Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2016, 01:09   #1
sunnyb
Новичок
Джуниор
 
Регистрация: 25.11.2016
Сообщений: 2
По умолчанию перенос строчек из одной вкладки в другую

Доброго вечера всем!
Столкнулся с проблемой, решение которой значительно облегчило бы рутинные задачи.
В Excel файле первый столбик служит заголовком для каждой строчки, заголовок или статус для строки всего двух вариантов - латинская буква "u" или "s".
Как написать VBA макрос, чтобы при его активации все строчки имеющие заголовок "s" из вкладки "1" были перенесены в следующую вкладку ("2") начиная с А3 и при этом в первой вкладке остались только строчки с заголовком "u" без пробелов между этими строчками.
sunnyb вне форума Ответить с цитированием
Старый 25.11.2016, 07:40   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Попытки, наработки решения где?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.11.2016, 09:05   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно, например, так:
Код:
Sub Main()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Application.ScreenUpdating = False: On Error Resume Next
    Set ws1 = Sheets("1"): Set ws2 = Sheets("2"): ws1.UsedRange.Copy ws2.[A3]
    ws1.UsedRange.Columns(1).ColumnDifferences(ws1.UsedRange.Columns(1).Find("u", LookAt:=xlWhole)).EntireRow.Delete
    ws2.UsedRange.Columns(1).ColumnDifferences(ws2.UsedRange.Columns(1).Find("s", LookAt:=xlWhole)).EntireRow.Delete
End Sub
Пример во вложении. Откройте файл и выполните макрос "Main"
Вложения
Тип файла: rar Книга1.rar (10.2 Кб, 29 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 25.11.2016 в 09:14.
SAS888 вне форума Ответить с цитированием
Старый 29.11.2016, 00:27   #4
sunnyb
Новичок
Джуниор
 
Регистрация: 25.11.2016
Сообщений: 2
По умолчанию

SAS888 - большое спасибо, макрос работает, единственное в файлике - примере работает корректно, а если макрос скопировать в собственный Excel, макрос все время удаляет все верхние (поскольку они пустые?) строчки. Все равно, огромное спасибо!
SAS888, то, что касается написания макросов при помощи VBA и осваивания расширенных функций Excel, можете ли Вы посоветовать литературу и с чего начинать в этом не простом вопросе?
sunnyb вне форума Ответить с цитированием
Старый 29.11.2016, 07:42   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

sunnyb
1. Как выражается один из небезызвестных наших модераторов: "Разрази меня гром", если после выполнения макроса результат не соответствует Вашему требованию. Каков вопрос - таков ответ. Уточните, что конкретно требуется (вставить на другой лист ниже существующих данных; вставить на другой лист, начиная с какой-то строки, оставив значения выше и т. п.).
Я, конечно, попробую угадать, предложив следующий макрос (пример во вложении):
Код:
Sub Main()
    Dim ws1 As Worksheet, ws2 As Worksheet, x As Range
    Application.ScreenUpdating = False: On Error Resume Next
    Set ws1 = Sheets("1"): Set ws2 = Sheets("2"): ws1.UsedRange.Copy ws2.[A3]
    ws1.UsedRange.Columns(1).ColumnDifferences(ws1.UsedRange.Columns(1).Find("u", LookAt:=xlWhole)).EntireRow.Delete
    Set x = Intersect(ws2.UsedRange, ws2.Rows("3:" & Rows.Count))
    x.Columns(1).ColumnDifferences(x.Columns(1).Find("s", LookAt:=xlWhole)).EntireRow.Delete
End Sub
2. Литературу по изучению VBA Excel неоднократно советовали на нашем форуме. В расширенном поиске по форуму задайте слово "Литература" в разделе Excel и получите "кучу" очень полезных ссылок.
Вложения
Тип файла: rar Книга2.rar (11.3 Кб, 12 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 29.11.2016 в 07:51.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных из одной БД в другую Максикок SQL, базы данных 1 15.03.2015 22:54
перенос из одной таблицы БД в другую WishHunter Помощь студентам 9 21.02.2013 08:15
Перенос данных из одной БД в другую demiancz БД в Delphi 1 11.03.2012 18:53
Перенос данных из одной таблицы в другую D.O.G БД в Delphi 3 07.10.2010 12:23
перенос столбцов из одной закладки в другую wildvad Microsoft Office Excel 19 22.05.2009 11:35