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

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

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

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


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

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

Я реально не помню синтаксис 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
Автоматическое добавление строк в Excel
    #38689263
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-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
Автоматическое добавление строк в Excel
    #38689318
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Автоматическое добавление строк в Excel
    #38689322
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо сделать проверку на пустую строку - ""
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689332
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Автоматическое добавление строк в Excel
    #38689342
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это что за условие?
Код: vbnet
1.
Len(Cells(n, 2).Value) = Empty


Len возвращает длину, то есть число
проверка на Empty - IsEmpty
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689382
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
А подскажите как мне копировать ячейки на новый лист во время выполнения процедуры?
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689463
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одну ячейку
Код: 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
Автоматическое добавление строк в Excel
    #38689577
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Автоматическое добавление строк в Excel
    #38689626
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Автоматическое добавление строк в Excel
    #38689639
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Я так пробовал )
Он просто указывает значение переменной i
Мне такое не подходит.
Мне надо, если он добавляет 10 строк, то надо чтобы и проставил 9-8-7-6---1

Хоть убейте... ((((
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689642
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть в каждую добавленную строку записывал значение....
Начальная таблица
Код: 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
Автоматическое добавление строк в Excel
    #38689665
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, стоп, вы сразу вставляете несколько строк, я не обратил внимание...
Ну так значит циклом
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689668
Фотография -O_o-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа, стоп, вы сразу вставляете несколько строк, я не обратил внимание...
Ну так значит циклом
Уважаемый, ну помогите кодом ......
Я не профффф.... тут (((
Дали разовую задачу сделать, я уже схожу супа...
Таких строк 40К :(.... Руками делая, я умру на месте...
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689677
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
один цикл написали, а второй никак? ))
Код: 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
Автоматическое добавление строк в Excel
    #38689684
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-O_o-Уважаемый, ну помогите кодом ......
Я не профффф.... тут (((
Дали разовую задачу сделать, я уже схожу супа...
Таких строк 40К :(.... Руками делая, я умру на месте...

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

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

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

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

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

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

Код: 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
Автоматическое добавление строк в Excel
    #38689750
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
application.ScreenUpdating=false
application.ScreenUpdating=True
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38689752
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-O_o-А то я макрорекодером записал )))) http://www.sql.ru/faq/faq_topic.aspx?fid=4344
...
Рейтинг: 0 / 0
Автоматическое добавление строк в Excel
    #38690241
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Provolodin661,

Да не, человек старается, видно же, просто устал )))

согласен. чтоб писать на VBA требуется недюжинное мужество
и терпение хыщника в засаде перед водопоем.
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Автоматическое добавление строк в Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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