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

Вход

Регистрация

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

 

= Мир MS Excel/Как вывести строки на отдельные листы? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как вывести строки на отдельные листы? (Макросы/Sub)
Как вывести строки на отдельные листы?
Sesya Дата: Понедельник, 05.01.2015, 13:28 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всех с наступившим Новым Годом!
Нужна ваша помощь.
На листе "Вопросы" каждый раз разное количество вопросов. Как вывести каждый вопрос на отдельный лист в этой же книге.
Файл во вложении.
К сообщению приложен файл: 0510725.xlsx (10.4 Kb)
 
Ответить
СообщениеВсех с наступившим Новым Годом!
Нужна ваша помощь.
На листе "Вопросы" каждый раз разное количество вопросов. Как вывести каждый вопрос на отдельный лист в этой же книге.
Файл во вложении.

Автор - Sesya
Дата добавления - 05.01.2015 в 13:28
Hugo Дата: Понедельник, 05.01.2015, 13:43 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Как вариант - использовать ВПР() - у Вас там уже на листах есть порядковые номера, вот по ним и тянуть. Листы создавать и заполнять формулами вручную (можно сделать один и раскопировать, номера/названия менять вручную).
Или генерить листы макросом - но макрос писать дольше, чем сделать вручную формулами.

Или опишите всю задачу - пока я вижу что оптимально один раз сделать вручную формулами с запасом, лишние листы скрыть.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеКак вариант - использовать ВПР() - у Вас там уже на листах есть порядковые номера, вот по ним и тянуть. Листы создавать и заполнять формулами вручную (можно сделать один и раскопировать, номера/названия менять вручную).
Или генерить листы макросом - но макрос писать дольше, чем сделать вручную формулами.

Или опишите всю задачу - пока я вижу что оптимально один раз сделать вручную формулами с запасом, лишние листы скрыть.

Автор - Hugo
Дата добавления - 05.01.2015 в 13:43
Leanna Дата: Понедельник, 05.01.2015, 13:57 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 189
Репутация: 78 ±
Замечаний: 0% ±

excel 2010
макросом можно:
форматировать дальше - сами. Выделяете в группу листы которые с вопросами, двигаете на одном из них нужную - высоту, ширину ячеек - и это отобразится на листах всей группы.
К сообщению приложен файл: raznesti_vopros.xlsm (22.5 Kb)


Лучше день потерять, потом за пять минут долететь!

Сообщение отредактировал Leanna - Понедельник, 05.01.2015, 14:09
 
Ответить
Сообщениемакросом можно:
форматировать дальше - сами. Выделяете в группу листы которые с вопросами, двигаете на одном из них нужную - высоту, ширину ячеек - и это отобразится на листах всей группы.

Автор - Leanna
Дата добавления - 05.01.2015 в 13:57
ShAM Дата: Понедельник, 05.01.2015, 14:35 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Как вариант (раз уж сделал):
[vba]
Код
Sub Варианты()
Dim sh As Object, i
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Name <> "Вопросы" Then sh.Delete
Next
Application.DisplayAlerts = True
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Sheets.Add After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = "Вопрос " & i - 1
.[a3] = "Вопрос " & i - 1
Sheets("Вопросы").Range("C" & i & ":G" & i).Copy .[a5]
End With
Next i
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: Sesya.xlsm (20.3 Kb)
 
Ответить
СообщениеКак вариант (раз уж сделал):
[vba]
Код
Sub Варианты()
Dim sh As Object, i
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Name <> "Вопросы" Then sh.Delete
Next
Application.DisplayAlerts = True
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Sheets.Add After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = "Вопрос " & i - 1
.[a3] = "Вопрос " & i - 1
Sheets("Вопросы").Range("C" & i & ":G" & i).Copy .[a5]
End With
Next i
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - ShAM
Дата добавления - 05.01.2015 в 14:35
Sesya Дата: Понедельник, 05.01.2015, 17:39 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо большое за ответы.
А как с помощью макроса отформатировать полученные листы (нужно, чтобы ячейки А5-Е5 представляли из себя выпадающий список, а ячейки А3-Е3 были объединены) и сделать так, чтобы листы с вопросами открывались поочередно, например, после нажатия кнопки "Далее" лист "Вопрос 1" закрывался и открывался лист "Вопрос 2"?
[moder]Читаем Правила форума. Один вопрос - одна тема. Эта тема закрыта[/moder]


Сообщение отредактировал Pelena - Понедельник, 05.01.2015, 18:27
 
Ответить
СообщениеСпасибо большое за ответы.
А как с помощью макроса отформатировать полученные листы (нужно, чтобы ячейки А5-Е5 представляли из себя выпадающий список, а ячейки А3-Е3 были объединены) и сделать так, чтобы листы с вопросами открывались поочередно, например, после нажатия кнопки "Далее" лист "Вопрос 1" закрывался и открывался лист "Вопрос 2"?
[moder]Читаем Правила форума. Один вопрос - одна тема. Эта тема закрыта[/moder]

Автор - Sesya
Дата добавления - 05.01.2015 в 17:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как вывести строки на отдельные листы? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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