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

Вход

Регистрация

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

 

= Мир MS Excel/Поделить строчки пробелами - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поделить строчки пробелами (Макросы/Sub)
Поделить строчки пробелами
ant6729 Дата: Среда, 27.07.2016, 11:28 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

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

Вводимый лимит может быть всегда разным.

Скажем, заполненных строк 250 (как в присланном примере) Может быть и больше.

И я хочу поделить, скажем, все по 10 строк

Тогда пробелы вставятся через каждые 10 строк и получится 25 кусков.
К сообщению приложен файл: 7459174.xlsx(11Kb)
 
Ответить
СообщениеДобрый день, в документе список данных, нужно, чтобы он делился на куски исходя из вводимого лимита строк в куске.

Вводимый лимит может быть всегда разным.

Скажем, заполненных строк 250 (как в присланном примере) Может быть и больше.

И я хочу поделить, скажем, все по 10 строк

Тогда пробелы вставятся через каждые 10 строк и получится 25 кусков.

Автор - ant6729
Дата добавления - 27.07.2016 в 11:28
Roman777 Дата: Среда, 27.07.2016, 11:48 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
ant6729, Укажите, пожалуйста, в примере как Вы хотите разбить на "куски", ато не ясно, что за куски такие должны получиться.


Много чего не знаю!!!!
 
Ответить
Сообщениеant6729, Укажите, пожалуйста, в примере как Вы хотите разбить на "куски", ато не ясно, что за куски такие должны получиться.

Автор - Roman777
Дата добавления - 27.07.2016 в 11:48
Karataev Дата: Среда, 27.07.2016, 11:58 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 643
Репутация: 227 ±
Замечаний: 0% ±

Excel
[vba]
Код
Sub Макрос()
    
    Dim lngStep As Long, lgnRowsCount As Long
    Dim lr As Long, i As Long
    
    lngStep = InputBox("Введите количество строк в куске:")
    
    Application.ScreenUpdating = False
    
    lr = Columns("A").Find(What:="*", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row
    
    lgnRowsCount = lr - 10
    
    If lgnRowsCount Mod lngStep <> 0 Then
        lgnRowsCount = lgnRowsCount + (lngStep - (lgnRowsCount Mod lngStep))
    End If
    
    lr = lgnRowsCount + 10
    
    lr = lr - lngStep
    
    For i = lr To 11 Step -lngStep
        Rows(i + 1).Insert
    Next
    
    Application.ScreenUpdating = True

End Sub
[/vba]


 
Ответить
Сообщение[vba]
Код
Sub Макрос()
    
    Dim lngStep As Long, lgnRowsCount As Long
    Dim lr As Long, i As Long
    
    lngStep = InputBox("Введите количество строк в куске:")
    
    Application.ScreenUpdating = False
    
    lr = Columns("A").Find(What:="*", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row
    
    lgnRowsCount = lr - 10
    
    If lgnRowsCount Mod lngStep <> 0 Then
        lgnRowsCount = lgnRowsCount + (lngStep - (lgnRowsCount Mod lngStep))
    End If
    
    lr = lgnRowsCount + 10
    
    lr = lr - lngStep
    
    For i = lr To 11 Step -lngStep
        Rows(i + 1).Insert
    Next
    
    Application.ScreenUpdating = True

End Sub
[/vba]

Автор - Karataev
Дата добавления - 27.07.2016 в 11:58
_Boroda_ Дата: Среда, 27.07.2016, 11:58 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 9377
Репутация: 3950 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=ЕСЛИ(ОСТАТ(СТРОКА(E1);$D$9+1);ИНДЕКС(A$11:A$274;СЧЁТЕСЛИ(E$10:E10;"?*")+1);"")

Код
=ЕСЛИ(ОСТАТ(СТРОКА(E1);$D$9+1);ИНДЕКС(A$11:A11;СЧЁТЕСЛИ(E$10:E10;"?*")+1);"")

В D9 - число 10
Кстати,
заполненных строк 250 (как в присланном примере)
в примере 264 строки
К сообщению приложен файл: 7459174_1.xlsx(24Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=ЕСЛИ(ОСТАТ(СТРОКА(E1);$D$9+1);ИНДЕКС(A$11:A$274;СЧЁТЕСЛИ(E$10:E10;"?*")+1);"")

Код
=ЕСЛИ(ОСТАТ(СТРОКА(E1);$D$9+1);ИНДЕКС(A$11:A11;СЧЁТЕСЛИ(E$10:E10;"?*")+1);"")

В D9 - число 10
Кстати,
заполненных строк 250 (как в присланном примере)
в примере 264 строки

Автор - _Boroda_
Дата добавления - 27.07.2016 в 11:58
buchlotnik Дата: Среда, 27.07.2016, 12:02 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2049
Репутация: 613 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
как-то так
[vba]
Код
Sub razr()
    Dim i&, n&, u&, l&, c&
    n = CLng(InputBox("По скока строк рвать??"))
    u = ActiveSheet.UsedRange.Row
    l = ActiveSheet.UsedRange.Rows.Count
    c = u + l
    For i = u To c + c / n Step n + 1
        Rows(i).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Next i
End Sub
[/vba]
К сообщению приложен файл: 7459174-1-.xlsm(19Kb)


платная помощь:
ЯД: 410012595572239; WM: 311017577133
buchlotnik@mail.ru


Сообщение отредактировал buchlotnik - Среда, 27.07.2016, 12:03
 
Ответить
Сообщениекак-то так
[vba]
Код
Sub razr()
    Dim i&, n&, u&, l&, c&
    n = CLng(InputBox("По скока строк рвать??"))
    u = ActiveSheet.UsedRange.Row
    l = ActiveSheet.UsedRange.Rows.Count
    c = u + l
    For i = u To c + c / n Step n + 1
        Rows(i).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Next i
End Sub
[/vba]

Автор - buchlotnik
Дата добавления - 27.07.2016 в 12:02
ant6729 Дата: Среда, 27.07.2016, 12:13 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Ужас...ну, и мозг у Вас....)
Да, так как я хотел.

Karataev - пока не смотрел

Посмотрел Boroda - да, подошло) Так как надо, дальше разберусь. Спасибо всем!!!
 
Ответить
СообщениеУжас...ну, и мозг у Вас....)
Да, так как я хотел.

Karataev - пока не смотрел

Посмотрел Boroda - да, подошло) Так как надо, дальше разберусь. Спасибо всем!!!

Автор - ant6729
Дата добавления - 27.07.2016 в 12:13
ant6729 Дата: Среда, 27.07.2016, 13:08 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Однако, если так, то не получается...

Тогда только макросами...??
К сообщению приложен файл: 7512502.xlsx(28Kb)
 
Ответить
СообщениеОднако, если так, то не получается...

Тогда только макросами...??

Автор - ant6729
Дата добавления - 27.07.2016 в 13:08
ant6729 Дата: Среда, 27.07.2016, 13:18 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Ок, а если
Список начинается со второй строчки, и первая колонка уникальная

Так практически идентично ситуации.
К сообщению приложен файл: 7454598.xlsx(28Kb)
 
Ответить
СообщениеОк, а если
Список начинается со второй строчки, и первая колонка уникальная

Так практически идентично ситуации.

Автор - ant6729
Дата добавления - 27.07.2016 в 13:18
buchlotnik Дата: Среда, 27.07.2016, 14:10 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2049
Репутация: 613 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
ant6729, у вас вопрос задан в ветке про VBA, так чем макросы не устраивают? :)
Формулу намудрил конечно, но вроде пашет:
Код
=ЕСЛИ(ОСТАТ(СТРОКА()-1;$A$1+1);ИНДЕКС(A$2:A2;СТРОКА()-ОКРВВЕРХ(СТРОКА()/($A$1+1);1));"")
К сообщению приложен файл: 7454598-1-.xlsx(24Kb)


платная помощь:
ЯД: 410012595572239; WM: 311017577133
buchlotnik@mail.ru


Сообщение отредактировал buchlotnik - Среда, 27.07.2016, 14:13
 
Ответить
Сообщениеant6729, у вас вопрос задан в ветке про VBA, так чем макросы не устраивают? :)
Формулу намудрил конечно, но вроде пашет:
Код
=ЕСЛИ(ОСТАТ(СТРОКА()-1;$A$1+1);ИНДЕКС(A$2:A2;СТРОКА()-ОКРВВЕРХ(СТРОКА()/($A$1+1);1));"")

Автор - buchlotnik
Дата добавления - 27.07.2016 в 14:10
Manyasha Дата: Среда, 27.07.2016, 14:13 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 1589
Репутация: 669 ±
Замечаний: 0% ±

Excel 2007, 2010
ant6729, для первой колонки замените в формуле Александра "?*" на ">"&0
К сообщению приложен файл: 7454598-1.xlsx(34Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеant6729, для первой колонки замените в формуле Александра "?*" на ">"&0

Автор - Manyasha
Дата добавления - 27.07.2016 в 14:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поделить строчки пробелами (Макросы/Sub)
Страница 1 из 11
Поиск:

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