Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Автоматическое добавление строк в Excel / 25 сообщений из 26, страница 1 из 2
07.07.2014, 11:05
    #38689181
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Привет всем.
Давно уже не работал с Excel.
Сейчас стала задача, сделать МЕГА файл для импорта в систему...
Что есть:
Фал Exlec - во вложении.

Есть табличка формата
Код: plaintext
1.
2.
3.
Тип дома	Кол-во квартир	Квартира
Квартирный	44	
Квартирный	557	

Что надо?
Берем первую строку, смотрим там 44 квартиры, мне надо на новом листе создать 44 таких же записей, но в столбце Квартира проставить от 1-44.
То же сделать и со 2 записью. Столбец "квартира" там будет заполнен от 1-557.
Если пусто или = 1 в столбце "кол-во квартир" то просто переносим строку.

Подскажите как сделать на VBA )
...
Рейтинг: 0 / 0
07.07.2014, 11:16
    #38689197
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Что конкретно вызывает сложность? Задавайте конкретные вопросы - подскажем.
Если же требуется не подсказать, а написать программу за вас - скажите это четко.


(ЗЫ: Файл не приложен)
...
Рейтинг: 0 / 0
07.07.2014, 11:27
    #38689224
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Файл решил не вкладывать :)

И мне надо это на новый лист вставить...

Я реально не помню синтаксис VBA )
Алгоритм нужен такой как я понимаю.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Проверить значение ячейки в столбце "кол-во квартир", если 
if ("кол-во квартир" =<1 or null) {
 копируем просто строку
 вставляем скопированную строку
} else {
for (i = 1; i<= "кол-во квартир"; i++) {
    копируем просто строку
    вставляем скопированную строку и добавляем значение "i" в столбец "квартира"
}
}

Помогите с кодом  :) 
Плиз
...
Рейтинг: 0 / 0
07.07.2014, 11:47
    #38689263
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
-O_o-Я реально не помню синтаксис VBA )по синтаксису условий и циклов
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
If Cells(a,b) <=1 or IsNull(Cells(a,b)) Then
 копируем просто строку
 вставляем скопированную строку
Else
  For i = 1 To Cells(a,b)
    копируем просто строку
    вставляем скопированную строку и добавляем значение "i" в столбец "квартира"
  Next
End If
...
Рейтинг: 0 / 0
07.07.2014, 12:26
    #38689318
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Pro,
Так, что-то я наделал...
Не могу понять почему цикл работает не правильно :)
Если первая строка содержит данные, то он показывает меседжи столько раз, сколько там написано, и заканчивает цикл.
Но если пусто, то показывает сообщение и идет дальше... ЧТо не так?

Таблица
Код: plaintext
1.
2.
3.
4.
название	кол-во квартир
пппп	           4
ууууу	
ss	           6

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function copypast()

n = 1
Do
    n = n + 1
    If Cells(n, 2) <= 1 Or IsNull(Cells(n, 2)) Then
        MsgBox ("pusto ili 1")
    Else
        For i = 1 To Cells(n, 2)
            MsgBox (Cells(n, 2).Value)
        Next
    End If
Loop While Len(Cells(n, 2).Value) = Empty

End Function
...
Рейтинг: 0 / 0
07.07.2014, 12:27
    #38689322
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Надо сделать проверку на пустую строку - ""
...
Рейтинг: 0 / 0
07.07.2014, 12:35
    #38689332
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Pro,
Так, я чуток переделал цикл )

Но блин, оно цепляет последнюю строку, которую не не надо брать... То есть -1 ячейка.
Как реализовать это???


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function copypast()

n = 1
Do Until Len(Cells(n, 2).Value) = Empty
    n = n + 1
    If Cells(n, 2) <= 1 Or Cells(n, 2) = 0 Then
        MsgBox ("pusto ili 1")
    Else
        For i = 1 To Cells(n, 2)
            MsgBox (Cells(n, 2).Value)
        Next
    End If
Loop

End Function
...
Рейтинг: 0 / 0
07.07.2014, 12:43
    #38689342
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
это что за условие?
Код: vbnet
1.
Len(Cells(n, 2).Value) = Empty


Len возвращает длину, то есть число
проверка на Empty - IsEmpty
...
Рейтинг: 0 / 0
07.07.2014, 13:33
    #38689382
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Pro,
А подскажите как мне копировать ячейки на новый лист во время выполнения процедуры?
...
Рейтинг: 0 / 0
07.07.2014, 14:31
    #38689463
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
одну ячейку
Код: vbnet
1.
Worksheets("Лист2").Cells(a,b)=Worksheets("Лист1").Cells(c,d)


диапазон ячеек
Код: vbnet
1.
2.
Worksheets("Лист2").Range(Worksheets("Лист2").Cells(a,b),Worksheets("Лист2").Cells(c,d))= _
Worksheets("Лист1").Range(Worksheets("Лист1").Cells(e,f),Worksheets("Лист1").Cells(g,h))
...
Рейтинг: 0 / 0
07.07.2014, 16:05
    #38689577
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Pro,
А подскажите еще вот такую штуку.
Я тут откопал скрипт который мне подходит )
Вопрос вот в чем, какую строку кода нужно добавить чтобы во вставленные строки проставлялось значение счетчика i ???
То есть должно быть так. Значение строки = 44
Все последующие - 39;38; ---- 1

Следующая строка.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub SHD_AddRows()
  LR = Cells(Rows.Count, 1).End(xlUp).Row
  For i = LR To 1 Step -1
    If Val(Cells(i, 1)) > 1 Then
      Rows(i + 1 & ":" & i + Cells(i, 1)).Insert
    End If
  Next
End Sub
...
Рейтинг: 0 / 0
07.07.2014, 16:58
    #38689626
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub SHD_AddRows()
  LR = Cells(Rows.Count, 1).End(xlUp).Row
  For i = LR To 1 Step -1
    If Val(Cells(i, 1)) > 1 Then
      Rows(i + 1 & ":" & i + Cells(i, 1)).Insert
      Cells(i, 5) = CStr(i)
    End If
  Next
End Sub
...
Рейтинг: 0 / 0
07.07.2014, 17:12
    #38689639
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Pro,
Я так пробовал )
Он просто указывает значение переменной i
Мне такое не подходит.
Мне надо, если он добавляет 10 строк, то надо чтобы и проставил 9-8-7-6---1

Хоть убейте... ((((
...
Рейтинг: 0 / 0
07.07.2014, 17:16
    #38689642
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
То есть в каждую добавленную строку записывал значение....
Начальная таблица
Код: plaintext
1.
2.
3.
4.
кол-во	Имя
3	Вова
2	Коля
5	Петя

Результат

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
кол-во	Имя
3	Вова
2	Вова
1	Вова
2	Коля
1	Коля
5	Петя
4	Петя
3	Петя
2	Петя
1	Петя
...
Рейтинг: 0 / 0
07.07.2014, 17:50
    #38689665
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
а, стоп, вы сразу вставляете несколько строк, я не обратил внимание...
Ну так значит циклом
...
Рейтинг: 0 / 0
07.07.2014, 17:51
    #38689668
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Proа, стоп, вы сразу вставляете несколько строк, я не обратил внимание...
Ну так значит циклом
Уважаемый, ну помогите кодом ......
Я не профффф.... тут (((
Дали разовую задачу сделать, я уже схожу супа...
Таких строк 40К :(.... Руками делая, я умру на месте...
...
Рейтинг: 0 / 0
07.07.2014, 17:59
    #38689677
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
один цикл написали, а второй никак? ))
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub SHD_AddRows()
  LR = Cells(Rows.Count, 1).End(xlUp).Row
  For i = LR To 1 Step -1
    If Val(Cells(i, 1)) > 1 Then
      Rows(i + 1 & ":" & i + Cells(i, 1)).Insert
      For j = i + 1 To  i + Cells(i, 1)
        Cells(j, 5) = CStr(i + Cells(i, 1) - j + 1))
      Next
    End If
  Next
End Sub

как-то так, не проверял, если где-то накосячил плюс-минус единица - поправьте по месту
...
Рейтинг: 0 / 0
07.07.2014, 18:08
    #38689684
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
-O_o-Уважаемый, ну помогите кодом ......
Я не профффф.... тут (((
Дали разовую задачу сделать, я уже схожу супа...
Таких строк 40К :(.... Руками делая, я умру на месте...

спросили же сразу в первом сообщении - за тебя программу написать?

нужна мотивация.
...
Рейтинг: 0 / 0
07.07.2014, 18:12
    #38689691
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Shocker.Pro,
Вы просто спасли мою грешную душу ))
Я поставлю вам свечку и попрошу +100 к карме)
...
Рейтинг: 0 / 0
07.07.2014, 18:12
    #38689692
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
volodin661,

Да не, человек старается, видно же, просто устал )))
...
Рейтинг: 0 / 0
07.07.2014, 18:13
    #38689693
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
volodin661-O_o-Уважаемый, ну помогите кодом ......
Я не профффф.... тут (((
Дали разовую задачу сделать, я уже схожу супа...
Таких строк 40К :(.... Руками делая, я умру на месте...

спросили же сразу в первом сообщении - за тебя программу написать?

нужна мотивация.
Я думал сам сумею ))))
Но переоценил свои силы )))
...
Рейтинг: 0 / 0
07.07.2014, 18:13
    #38689694
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
-O_o-Я поставлю вам свечку и попрошу +100 к карме)стоит все-таки определиться с религией, а то ничего не сработает )
...
Рейтинг: 0 / 0
07.07.2014, 19:12
    #38689747
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
А подскажите мне еще люди добрые, как оптимизировать этот код, чтобы копипаст не делался визуально...
А то я макрорекодером записал ))))

Заранее спасибо.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub SHD_AddRows()
  LR = Cells(Rows.Count, 1).End(xlUp).Row
  For i = LR To 1 Step -1
    If Val(Cells(i, 1)) > 1 Then
      Rows(i + 1 & ":" & i + Cells(i, 1)).Insert
      For j = i + 1 To i + Cells(i, 1)
        Cells(j, 5) = CStr(i + Cells(i, 1) - j + 1)
            Range(Cells(i, 3), Cells(i, 6)).Select
            Selection.Copy
            Cells(j, 5).Select
            ActiveSheet.Paste
      Next
    End If
  Next
End Sub
...
Рейтинг: 0 / 0
07.07.2014, 19:14
    #38689750
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
Код: vbnet
1.
2.
application.ScreenUpdating=false
application.ScreenUpdating=True
...
Рейтинг: 0 / 0
07.07.2014, 19:14
    #38689752
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическое добавление строк в Excel
-O_o-А то я макрорекодером записал )))) http://www.sql.ru/faq/faq_topic.aspx?fid=4344
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Автоматическое добавление строк в Excel / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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