Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / с помощью VBA добавить пустые строки в эксель / 21 сообщений из 21, страница 1 из 1
23.07.2005, 14:51
    #33181239
Leni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Подскажите пожалуйста!!!
как с помощью VBA добавить пустые строки.
У меня есть макром который сортируем мне инфо по признакам в результате у меня 6 листов экселя с данными (без пробелов).
Например на первом листе:
1 строка (Название продукта)
2 строка (цена продукта, цен со строками может быть несколько)
3 цена
4 цна
5 (добавить пустую строку (надо что бы пустая строка вставлялась после всех манипуляций.)
1И опять название продукта
2Цена
3Пустая строка…

Очень жду!
Заранее огромное спасибо!
...
Рейтинг: 0 / 0
23.07.2005, 16:37
    #33181271
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Selection.EntireRow.Insert

Вставка пустой строки в место текущей
...
Рейтинг: 0 / 0
23.07.2005, 16:43
    #33181273
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
По какому признаку вставляются строки?
...
Рейтинг: 0 / 0
23.07.2005, 17:40
    #33181291
leni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
у меня сплошной текст, а надо перед каждым новым наименованием пустую строчку пост....
...
Рейтинг: 0 / 0
23.07.2005, 18:04
    #33181303
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
leniу меня сплошной текст, а надо перед каждым новым наименованием пустую строчку пост....
Как узнать что наименование новое ? Сканировать весь столбец?
...
Рейтинг: 0 / 0
23.07.2005, 18:12
    #33181306
leni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Видимо да.... выглядеть это должно так! Если несколько позиций с одинаковым названием, то они стоят вместе, как только поясл. новое название, то вставляется пустая строка


12.07.2005 Kami 650$
12.07.2005 Kami 750$

12.07.2005 Uurist 660$

12.07.2005 Sea 671$
...
Рейтинг: 0 / 0
23.07.2005, 18:28
    #33181311
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Если одинакоые строки всегда стоят рядом то наверное нужно проийтись циклом по столбцу сравнивая с нижней строкой.
конец таблицы ищешь
Set r = Range("A" & ActiveCell.Row & ":A1000")
Set g = r.Find(What:="")
konec=g.row

потом в цикле
for i=5 to konec step 1




next i

В принципе не сложно. Нужно только учесть что рядом могут быть не 2 а
более строк.
...
Рейтинг: 0 / 0
23.07.2005, 18:30
    #33181312
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Наверное посмотри вопрос OLGA2005 от 21.07.05
...
Рейтинг: 0 / 0
23.07.2005, 18:35
    #33181317
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Посмотри http://www.sql.ru/forum/actualthread.aspx?tid=201922
...
Рейтинг: 0 / 0
23.07.2005, 18:44
    #33181323
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Нужно только учесть что рядом могут быть не 2 а
более строк.[/quot]

Имеется ввиду ОДИНАКОВЫХ строк
...
Рейтинг: 0 / 0
25.07.2005, 10:52
    #33182090
leni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
спа! попробую.
...
Рейтинг: 0 / 0
25.07.2005, 13:59
    #33182617
с помощью VBA добавить пустые строки в эксель
leniВидимо да.... выглядеть это должно так! Если несколько позиций с одинаковым названием, то они стоят вместе, как только поясл. новое название, то вставляется пустая строка


12.07.2005 Kami 650$
12.07.2005 Kami 750$

12.07.2005 Uurist 660$

12.07.2005 Sea 671$

Вот набросал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub FindX()
    Dim rgn As Range
    Dim i As Integer
    Dim intCount As Integer
    
    Set rgn = Cells( 1 ,  1 ).CurrentRegion

    intCount = rgn.Rows.Count
    i =  1 
    
    Do
        If Cells(i,  2 ).Value <> Cells(i,  2 ).Offset( 1 ,  0 ).Value And _
         Cells(i,  2 ).Offset( 1 ,  0 ).Value <> "" Then
            Cells(i,  2 ).Offset( 1 ,  0 ).EntireRow.Insert
            i = i +  1 
            intCount = intCount +  1 
        End If
        i = i +  1 
    Loop Until i > intCount
End Sub
...
Рейтинг: 0 / 0
25.07.2005, 20:58
    #33183708
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Пользователь2Вот набросал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub FindX()
    Dim rgn As Range
    Dim i As Integer
    Dim intCount As Integer
    
    Set rgn = Cells( 1 ,  1 ).CurrentRegion

    intCount = rgn.Rows.Count
    i =  1 
    
    Do
        If Cells(i,  2 ).Value <> Cells(i,  2 ).Offset( 1 ,  0 ).Value And _
         Cells(i,  2 ).Offset( 1 ,  0 ).Value <> "" Then
            Cells(i,  2 ).Offset( 1 ,  0 ).EntireRow.Insert
            i = i +  1 
            intCount = intCount +  1 
        End If
        i = i +  1 
    Loop Until i > intCount
End Sub


Вот, сократил: :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub FindX()
    Dim rgn As Range
    
    For Each rgn In ActiveSheet.Cells( 1 ,  1 ).CurrentRegion.Columns( 2 ).Cells
        If (rgn.Value <> rgn.Offset( 1 ,  0 ).Value) And _
                (Not (IsEmpty(rgn) Or IsEmpty(rgn.Offset( 1 ,  0 )))) Then
            rgn.Offset( 1 ,  0 ).EntireRow.Insert
        End If
    Next
End Sub
...
Рейтинг: 0 / 0
26.07.2005, 02:25
    #33183841
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
здорово.
решил попробовать. получилось так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    Dim rgn As Range
    Dim tRow As Long

   Set rgn = ActiveSheet.Cells( 1 ,  1 ).CurrentRegion.Columns( 2 ).Cells
            
    For tRow = rgn.End(xlDown).Row To  2  Step - 1 
      If rgn(tRow) <> rgn(tRow -  1 ) Then
        rgn(tRow).EntireRow.Insert
      End If
    Next
...
Рейтинг: 0 / 0
26.07.2005, 05:01
    #33183862
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
эхь, - поторопился малость.
правда в том, что предложенный мной вариант в исходном виде "не держит"
второго прогона на том же наборе данных.

покрутил три варианта. в общем, они становятся не короче White Owl

больше всего мне понравилось сначала сначала удалить все
такие строки, в которых столбец B окажется пустым, а потом вставить
пустые строки заново.
что-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    Dim rgn As Range
    Dim tRow As Long
    
    Set rgn = ActiveSheet.[B:B]
    rgn.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    
    On Error Resume Next
    Set rgn = Intersect(ActiveSheet.[B:B], ActiveSheet.UsedRange).SpecialCells(xlCellTypeConstants)
    On Error GoTo  0 
    
    If Not (rgn Is Nothing) Then
      For tRow = rgn.End(xlDown).Row To  2  Step - 1 
        If rgn(tRow) <> rgn(tRow -  1 ) Then
          rgn(tRow).EntireRow.Insert
        End If
      Next
    End If
...
Рейтинг: 0 / 0
26.07.2005, 05:07
    #33183863
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
опять палки и ёлки.
так ближе.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim rgn As Range
    Dim tRow As Long
    
    Set rgn = ActiveSheet.[B:B]
    On Error Resume Next
    rgn.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Set rgn = Intersect(ActiveSheet.[B:B], ActiveSheet.UsedRange).SpecialCells(xlCellTypeConstants)
    On Error GoTo  0 
    
    If Not (rgn Is Nothing) Then
    For tRow = rgn.End(xlDown).Row To  2  Step - 1 
      If rgn(tRow) <> rgn(tRow -  1 ) Then
        rgn(tRow).EntireRow.Insert
      End If
    Next
    End If
...
Рейтинг: 0 / 0
26.07.2005, 09:38
    #33184060
с помощью VBA добавить пустые строки в эксель
просто отсортировать сначала по нужному столбцу.
...
Рейтинг: 0 / 0
26.07.2005, 09:57
    #33184091
leni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Вот, откуда вы такие умные…. Может скажите где научились? ))
...
Рейтинг: 0 / 0
26.07.2005, 10:17
    #33184157
leni
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Народ огромное спасибо все работает))) Вы супер!!!))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.02.2013, 03:20
    #38139244
Brsik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
НЕ МОГ НЕ РЕГНУТЬСЯ!

White Owl, Благо'Дарю Вам ! Вы выручили мою супругу от завтрашнего КООООААААААОАОАООАОАОААОАШМАРА.
Ей в документе екселя нужно будет поставить как раз те самые сроки пустые. я тут пол инета облазил. и даже за деньги нашёл то, что у Вас написано для Людей . Тоесть Ваша помощь. Это Вас улучшает в разы.

Моя когда завтра проснётся и узнает что есть решение её(шного) дня. Она просто меня расцелует. Ну а я .....Ну только чуток ВАС -))))))))))))

макрос нашёл как писать! всё сделал! и когда увидел результат.........хотел сразу разбудить сказать.....а потом думаю..та...с просони она конечно порадуется. Но по УТРУ согласитесь это будет ПОКРУЧЕ ЧАШЕК с кофем и тому подобного!
Ещё РАЗ БЛАГОДАРЕН! Вам и Форуму!
...
Рейтинг: 0 / 0
06.02.2013, 10:41
    #38139487
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью VBA добавить пустые строки в эксель
Да можно и без макроса :)
Желательно, чтобы у столбцов были заголовки, но можно и без них.
1. Данные - Итоги: при каждом изменении в (2-й столбец) добавить итоги по (3-й столбец), Итоги под данными.
2. Автофильтр по пустым ячейкам в 1 столбце, выделить 2-ю строку, Ctrl+Shift+вниз, F5 - выделить - только видимые - Del.
3. Выделить одну ячейку, Данные - Группа и структура - Удалить структуру. Отключить автофильтр.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / с помощью VBA добавить пустые строки в эксель / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]