Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2013, 17:30   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Нет, сейчас не могу - работа...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 19.12.2013, 17:52   #12
АннаСаратов1994
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 12
По умолчанию

Хорошо... Всё равно благодарна за помощь - что уделили время!
АннаСаратов1994 вне форума Ответить с цитированием
Старый 19.12.2013, 17:57   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

пробуйте этот
Код:
Sub AddSector()
  Dim rg1 As Range, rg2 As Range, frstadr As String
  Application.FindFormat.Clear:  Application.FindFormat.Font.FontStyle = "Bold"
  Set rg1 = Range("B:C").Cells(1)
  Set rg2 = Range("B:C").Find("*", rg1, searchorder:=xlByRows, searchformat:=True)
  If rg2 Is Nothing Then Exit Sub Else frstadr = rg2.Address
  Do
    Set rg1 = rg2
    Set rg2 = Range("B:C").Find("*", rg1, searchorder:=xlByRows, searchformat:=True)
    If rg2.Address = frstadr Then Exit Sub
    Cells(rg1.Row + 1, 1).Resize(rg2.Row - rg1.Row - 1, 1).Value = rg1.Value
  Loop
End Sub
названия секторов (отделов) могут находиться в колонке В или С. просто запустите макрос. возможно, вручную потребуется вставить название последнего сектора.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.12.2013, 17:30   #14
АннаСаратов1994
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 12
По умолчанию

IgorGO, огромное Вам спасибо! всё работает! Спасибо!
Подскажите, пожалуйста, при смене столбцов я меняю в макросе только название столбцов? просто у меня таблича больше, и когда я подставляю макрос в свою таблицу и меняю столбцы с Range("B:C") на Range("D:E"), то выдаёт ошибку, а когда свои данные копирую в пример, то всё работает отлично!
Огромнейшее вам спасибо за помощь!...
ВОт бы научиться так писать макросы- тогда бы цены бы мне было)
АннаСаратов1994 вне форума Ответить с цитированием
Старый 20.12.2013, 17:46   #15
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот так ошибок не должно быть, можут не проставиться данные для 1-го и последнего секторов. колонок с названиями секторов может быть много (не обязательно 2)

Код:
Sub AddSector()
  Dim rg1 As Range, rg2 As Range, rgData As Range
  Application.FindFormat.Clear:  Application.FindFormat.Font.FontStyle = "Bold"
  Set rgData = Range("B:C"):  Set rg1 = rgData.Cells(1)
  Set rg2 = rgData.Find("*", rg1, searchorder:=xlByRows, searchformat:=True)
  If rg2 Is Nothing Then Exit Sub
  Do
    Set rg1 = rg2
    Set rg2 = rgData.Find("*", rg1, searchorder:=xlByRows, searchformat:=True)
    If rg2.Row < rg1.Row Then Exit Sub
    Cells(rg1.Row + 1, 1).Resize(rg2.Row - rg1.Row - 1, 1).Value = rg1.Value
  Loop
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.12.2013, 18:02   #16
АннаСаратов1994
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 12
По умолчанию

IgorGO, ошибка возникает на стыке жирных ячеек, т.е. когда в столбце B стоит значение жирным шрифтом, потом C в котром также жирный шрифт...
Я могу ручную что то придумать, у меня выгрузка из 20.000 строк, получится очень трудоёмко...
Вложения
Тип файла: rar Пример Excel.rar (2.3 Кб, 4 просмотров)
АннаСаратов1994 вне форума Ответить с цитированием
Старый 20.12.2013, 18:11   #17
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

И чегож мой код не попробовать?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.12.2013, 18:38   #18
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

предполагалось:
есть названия секторов (отделов)
в каждом секторе есть минимум 1 должность

если исходные данные имеют другую структуру - покажите ее (как могут выглядеть исходные) соответсвенно макрос видоизмениться немного
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.12.2013, 18:43   #19
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в конце концов, есть макрос Hugo121.

понимаете, тут как перед доктором, не надо стесняетесь показать "кривые" данные, ну... какие есть
а без полноты картины - и дианоз не точный, и лечение неправильное, и результаты плачевные
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.12.2013, 18:43   #20
АннаСаратов1994
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 12
По умолчанию

Hugo121,у меня Ваш макрос не срабатывает.... Копирую макрос, выделяю столбец и запускаю макрос, но ни чего не происходит...
АннаСаратов1994 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос при условии создает Макрос FiataliS Microsoft Office Excel 4 13.01.2014 11:37
макрос на добавление строки при условии KApSuL Microsoft Office Excel 42 13.09.2012 15:42
Копирование данных из одной ячейки в другую при условии hrom_scorpio Microsoft Office Excel 4 06.08.2011 19:18
перенос данных из ячеек при условии stels77 Microsoft Office Excel 13 06.07.2011 16:49
Перенос данных из ячеек при условии gavrylyuk Microsoft Office Excel 12 29.07.2008 12:33