С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
1

Перенести на новый лист строки с определенным именем, и переименовать лист

14.06.2013, 10:48. Показов 3176. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую уважаемых форумчан! У меня есть книга в excel (питание в университетской столовой), хотелось бы сделать так, чтобы данные из столбца "B" переносились со всей строкой на новый лист, и лист переименовывался соответствующим образом. Как это сделать? Помогите пожалуйста.

Лист такой:

367287 Иванов 12
372893 Петров 12
328937 Сидоров 34
323988 Яблонев 24
328932 Конев 11
367287 Иванов 12
328937 Сидоров 34
328932 Конев 11

И так далее.
Таких повторяющихся фамилий может быть несколько сотен.

Как перенести всего "Иванов" на лист "Иванов", со всей строкой (всеми остальными данными в столбцах A и C)?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2013, 10:48
Ответы с готовыми решениями:

Перенести необходимые строки на новый лист
Добрый день! Имеется excel файл напечатанного ниже формата: Файл исходник: Лист "1",...

Есть ли лист с определенным именем в книге?
Коллеги, подскажите, как определить это? Спасибо!

Как создать новый лист и импортировать данные с другого листа на новый лист
как создать новый лист и импортировать данные с другого листа на новый лист. Private Sub...

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

12
6948 / 2851 / 550
Регистрация: 19.10.2012
Сообщений: 8,731
14.06.2013, 11:28 2
Без переноса. Но можно в конце источник зачистить...

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
Option Explicit
 
Sub PereborStrok()    'коллекция в словаре
    Dim a, i&, x&, t$, NewSheet As Object
    Dim el, col
 
    With Sheets(1)
        a = .Range("C1", .Cells(.Rows.Count, "A").End(xlUp)).Value
    End With
 
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
 
        For i = 1 To UBound(a)
            t = a(i, 2)
            If Not .exists(t) Then .Add t, New Collection
            .Item(t).Add i
        Next
 
        For Each el In .keys
            Set NewSheet = Worksheets.Add
            NewSheet.Name = el
            i = 0: ReDim b(1 To .Item(el).Count, 1 To 3)
            For Each col In .Item(el)
                i = i + 1: For x = 1 To 3: b(i, x) = a(col, x): Next
            Next
            NewSheet.[a1].Resize(UBound(b), 3) = b
        Next
 
    End With
End Sub
1
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
14.06.2013, 11:39  [ТС] 3
Hugo121, Очень, очень Вам благодарен! Это даже более того, что я хотел!
0
6948 / 2851 / 550
Регистрация: 19.10.2012
Сообщений: 8,731
14.06.2013, 11:41 4
А чем более?
0
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
14.06.2013, 11:51  [ТС] 5
Hugo121, Просто настолько все красиво выглядит!
А не подскажете, как сделать на каждом листе сортировку по 3 столбцу (столбцу C), по возрастанию?
0
6948 / 2851 / 550
Регистрация: 19.10.2012
Сообщений: 8,731
14.06.2013, 11:58 6
Запишите сортировку рекордером, добавьте в код.
Можно отсортировать один раз исходник - результаты будут тоже сортированы.
0
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
14.06.2013, 12:05  [ТС] 7
Hugo121, мне бы просто по каждой фамилии сортировать, когда они на отдельном листе, а не все вместе.
Примерно представляю как сделать сортирвку, но вот на каждом листе, не представляю. Просто вдруг фамилий будет не 10, а 20 например. Соответственно, 20 листов, и на каждом сортировку.
0
6948 / 2851 / 550
Регистрация: 19.10.2012
Сообщений: 8,731
14.06.2013, 12:09 8
Записываете одну сортировку, вставляете в код после выгрузки на лист массива.
Можно конечно в коде сперва сортировать массив - но на листе проще.
Разбирайтесь, пригодится
1
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
14.06.2013, 13:38  [ТС] 9
Hugo121, у меня все привязыватеся к "Лист1" когда пишу макрорекордером.
0
6948 / 2851 / 550
Регистрация: 19.10.2012
Сообщений: 8,731
14.06.2013, 14:09 10
У меня не привязалось..
Ну ладно, записал-приладил.
Вместо одной строки выгрузки напишите 6:

Visual Basic
1
2
3
4
5
6
            With NewSheet
                .[a1].Resize(UBound(b), 3) = b
                .Range("A:C").Sort Key1:=.Range("C1"), Order1:=xlAscending, Header:= _
                                   xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                                   DataOption1:=xlSortTextAsNumbers
            End With
0
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
14.06.2013, 14:22  [ТС] 11
Hugo121, вставил после 30 строки, но не отсортировалось на новом листе.
0
6948 / 2851 / 550
Регистрация: 19.10.2012
Сообщений: 8,731
14.06.2013, 14:35 12
Я ведь написал вместо одной строки
Вместо 27-й.
1
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 7
14.06.2013, 14:41  [ТС] 13
Hugo121, Вау! Волшебно!
0
14.06.2013, 14:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2013, 14:41
Помогаю со студенческими работами здесь

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

Можно ли как-то перенести таблицу на новый лист в Excel?
В Excel на одном листе есть несколько таблиц. Из скрипта таблицы расширяются по вертикали и туда...

Перенести каждые 5000 тысяч строк но новый лист excel
Добрый день! Имеется excel файл с заполненными 50 тыс. строками. Необходимо перенести каждые...

Перенести строки с пустой ячейкой столбца "B" на новый лист "Лист1"
Добрый день! Имеется excel файл напечатанного ниже формата: Столбец "A" - ссылка на товар;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru