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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование и добавление строк по значениям в таблице - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование и добавление строк по значениям в таблице (Макросы/Sub)
Копирование и добавление строк по значениям в таблице
Oll123 Дата: Четверг, 09.10.2014, 14:30 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день
Помогите пожалуйста с макросом добавляющим строчки по количеству указанному в таблице и копирующие текст
есть таблица, там два параметра, название и количество
например:
воздушные барабаны 2
лохматые еноты 3

Надо что бы это превратилось в:
воздушные барабаны
воздушные барабаны
лохматые еноты
лохматые еноты
лохматые еноты

Че-то голову сломал, вроде всё просто, а сделать не могу( ниразу не скриптер =\
[moder]Почитайте, для начала, Правила форума. особое внимание на п.3
К сообщению приложен файл: 7474711.xlsx (9.2 Kb)


Сообщение отредактировал Oll123 - Четверг, 09.10.2014, 15:15
 
Ответить
СообщениеДобрый день
Помогите пожалуйста с макросом добавляющим строчки по количеству указанному в таблице и копирующие текст
есть таблица, там два параметра, название и количество
например:
воздушные барабаны 2
лохматые еноты 3

Надо что бы это превратилось в:
воздушные барабаны
воздушные барабаны
лохматые еноты
лохматые еноты
лохматые еноты

Че-то голову сломал, вроде всё просто, а сделать не могу( ниразу не скриптер =\
[moder]Почитайте, для начала, Правила форума. особое внимание на п.3

Автор - Oll123
Дата добавления - 09.10.2014 в 14:30
Rioran Дата: Четверг, 09.10.2014, 14:38 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Очень похоже на одну тему... Я просто оставлю это здесь =)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеОчень похоже на одну тему... Я просто оставлю это здесь =)

Автор - Rioran
Дата добавления - 09.10.2014 в 14:38
Oll123 Дата: Четверг, 09.10.2014, 14:43 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Rioran, Спасибо +) Похоже это то, что мне необходимо )
Неудивительно что оно не нашлось по поиску, размножение фруктов ! +)
 
Ответить
СообщениеRioran, Спасибо +) Похоже это то, что мне необходимо )
Неудивительно что оно не нашлось по поиску, размножение фруктов ! +)

Автор - Oll123
Дата добавления - 09.10.2014 в 14:43
EvgenyD Дата: Четверг, 09.10.2014, 15:00 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Oll123, В макросе делал так(кусок из макроса):
[vba]
Код

For m = 5 To LastR
      k = Cells(m, 3).Value
          For y = 1 To k
             VesEd.Add (Cells(m, 4).Value)
          Next y
      Next m
[/vba]
Первый For переключает строку, второй для повтора добавления исходя из количества. Думаю тут понятно все.
В столбце 3 у меня количества проставлены, в столбце 4 значения для "размножения".
VesEd - это у меня коллекция, можно просто добавлять в массив одномерный и выгрузить его потом.


Сообщение отредактировал EvgenyD - Четверг, 09.10.2014, 15:03
 
Ответить
СообщениеOll123, В макросе делал так(кусок из макроса):
[vba]
Код

For m = 5 To LastR
      k = Cells(m, 3).Value
          For y = 1 To k
             VesEd.Add (Cells(m, 4).Value)
          Next y
      Next m
[/vba]
Первый For переключает строку, второй для повтора добавления исходя из количества. Думаю тут понятно все.
В столбце 3 у меня количества проставлены, в столбце 4 значения для "размножения".
VesEd - это у меня коллекция, можно просто добавлять в массив одномерный и выгрузить его потом.

Автор - EvgenyD
Дата добавления - 09.10.2014 в 15:00
Oll123 Дата: Четверг, 09.10.2014, 15:02 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Хм, первоначально показалось что пример тот который нужен, но нет
Формулы которые там есть, работают для конкретного примера, для 10 строчек и всё
А мне нужен все-таки скорее скрипт, т.к. число строк может быть любым
Попробовал модифицировать и поиграть с диапазонами - не осилил.

З.Ы. Модератору - Задача описана корректно и файла на мой взгляд не требует, проста как два рубля. Я могу продублировать файлом, но он подходит и отюда http://www.excelworld.ru/forum/7-3571-1
только предложенные формулы все заканчиваются на 10-й строчке, а мне нужен безлимит по тсрочкам ) И вывод куда угодно, хоть в новый файл, хоть в новый лист, хоть в соседнии ячейки, хоть преобразовывать текущие.
Приделать файл ?
 
Ответить
СообщениеХм, первоначально показалось что пример тот который нужен, но нет
Формулы которые там есть, работают для конкретного примера, для 10 строчек и всё
А мне нужен все-таки скорее скрипт, т.к. число строк может быть любым
Попробовал модифицировать и поиграть с диапазонами - не осилил.

З.Ы. Модератору - Задача описана корректно и файла на мой взгляд не требует, проста как два рубля. Я могу продублировать файлом, но он подходит и отюда http://www.excelworld.ru/forum/7-3571-1
только предложенные формулы все заканчиваются на 10-й строчке, а мне нужен безлимит по тсрочкам ) И вывод куда угодно, хоть в новый файл, хоть в новый лист, хоть в соседнии ячейки, хоть преобразовывать текущие.
Приделать файл ?

Автор - Oll123
Дата добавления - 09.10.2014 в 15:02
EvgenyD Дата: Четверг, 09.10.2014, 15:10 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Oll123, думаю если Вы хотите получить готовый работающий файл, то надо выложить все же, и разместить там данные как Вам нужно в итоге. Если Вам просто нужна подсказка, а дальше сами будете пробовать, то я привел пример. Попробуйте, если не получится, то выкладывайте файл с Вашим кодом.
Задача понятна и без файла, но правила есть правила. ;)
 
Ответить
СообщениеOll123, думаю если Вы хотите получить готовый работающий файл, то надо выложить все же, и разместить там данные как Вам нужно в итоге. Если Вам просто нужна подсказка, а дальше сами будете пробовать, то я привел пример. Попробуйте, если не получится, то выкладывайте файл с Вашим кодом.
Задача понятна и без файла, но правила есть правила. ;)

Автор - EvgenyD
Дата добавления - 09.10.2014 в 15:10
Oll123 Дата: Четверг, 09.10.2014, 15:11 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
EvgenyD, Спасибо за ответ, жаль что я недостаточно знаю, что бы его понять и использовать =\ Вернее я ничего не знаю про макросы, VB, массивы, и коллекции)
Предел моих усилий при поиске в инете и переделке под нужные задачи на данный момент:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim r As Long
If Target.Column <> 2 Then Exit Sub
Cancel = True: r = Target.Row + 1: Rows®.Insert Shift:=xlDown
Target.EntireRow.Copy: Cells(r, 1).PasteSpecial Paste:=xlPasteValues
Cells(r, 1).ClearContents: Cells(r, 1).Select
End Sub
ручное тыкание в каждую ячейку с цифрой, плюс не знаю как копировать текст собственно говоря
 
Ответить
СообщениеEvgenyD, Спасибо за ответ, жаль что я недостаточно знаю, что бы его понять и использовать =\ Вернее я ничего не знаю про макросы, VB, массивы, и коллекции)
Предел моих усилий при поиске в инете и переделке под нужные задачи на данный момент:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim r As Long
If Target.Column <> 2 Then Exit Sub
Cancel = True: r = Target.Row + 1: Rows®.Insert Shift:=xlDown
Target.EntireRow.Copy: Cells(r, 1).PasteSpecial Paste:=xlPasteValues
Cells(r, 1).ClearContents: Cells(r, 1).Select
End Sub
ручное тыкание в каждую ячейку с цифрой, плюс не знаю как копировать текст собственно говоря

Автор - Oll123
Дата добавления - 09.10.2014 в 15:11
EvgenyD Дата: Четверг, 09.10.2014, 15:14 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Цитата
думаю если Вы хотите получить готовый работающий файл, то надо выложить все же, и разместить там данные как Вам нужно
 
Ответить
Сообщение
Цитата
думаю если Вы хотите получить готовый работающий файл, то надо выложить все же, и разместить там данные как Вам нужно

Автор - EvgenyD
Дата добавления - 09.10.2014 в 15:14
Oll123 Дата: Четверг, 09.10.2014, 15:14 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Понял, файл
К сообщению приложен файл: 6740849.xlsx (9.2 Kb)
 
Ответить
СообщениеПонял, файл

Автор - Oll123
Дата добавления - 09.10.2014 в 15:14
Oll123 Дата: Четверг, 09.10.2014, 15:26 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем заинтересовавшимся большое спасибо за помощь )
Результат выполняющий то что нужно:

Public Sub ForNextSub()

Dim i, j, n, m As Integer
j = 1
m = 0
Do While Cells(j, 2) <> ""
n = CInt(Cells(j, 2))

For i = 1 To n

Cells(i + m, 4).Value = Cells(j, 1)

Next
m = m + n
j = j + 1
Loop

End Sub
 
Ответить
СообщениеВсем заинтересовавшимся большое спасибо за помощь )
Результат выполняющий то что нужно:

Public Sub ForNextSub()

Dim i, j, n, m As Integer
j = 1
m = 0
Do While Cells(j, 2) <> ""
n = CInt(Cells(j, 2))

For i = 1 To n

Cells(i + m, 4).Value = Cells(j, 1)

Next
m = m + n
j = j + 1
Loop

End Sub

Автор - Oll123
Дата добавления - 09.10.2014 в 15:26
EvgenyD Дата: Четверг, 09.10.2014, 16:15 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Oll123, с массивом.
К сообщению приложен файл: Oll123.xlsm (15.6 Kb)
 
Ответить
СообщениеOll123, с массивом.

Автор - EvgenyD
Дата добавления - 09.10.2014 в 16:15
Oll123 Дата: Четверг, 09.10.2014, 16:24 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
EvgenyD, Большое спасибо ! +)
 
Ответить
СообщениеEvgenyD, Большое спасибо ! +)

Автор - Oll123
Дата добавления - 09.10.2014 в 16:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование и добавление строк по значениям в таблице (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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