Столкнулся с необходимостью заполнения пустых ячеек по столбцам значениями из предыдущих непустых ячеек. После выгрузки данных из базы и подготовки сводной таблицы остаются незаполненные ячейки. Для дальнейшей подготовки отчета требуется заполнить данные пустые ячейки. К сожалению коллеги подсказать ничего не смогли, а обработка таблицы из 1000-1500 строк в ручную съедает слишком много времени.
Алгоритм, я так понимаю, следующий: 1. Указывается диапазон ячеек (выделяется таблица) 2. Макрос проходит по столбцам в указанном диапазоне и ищет пустые ячейки. 3. Присваивает пустым ячейкам значение предыдущей не пустой
До этого сталкивался с самыми простыми макросами...а тут уже третий день не могу разобраться с кодом и условием.
Просьба помочь разобраться!
Добрый день, форумчане!
Столкнулся с необходимостью заполнения пустых ячеек по столбцам значениями из предыдущих непустых ячеек. После выгрузки данных из базы и подготовки сводной таблицы остаются незаполненные ячейки. Для дальнейшей подготовки отчета требуется заполнить данные пустые ячейки. К сожалению коллеги подсказать ничего не смогли, а обработка таблицы из 1000-1500 строк в ручную съедает слишком много времени.
Алгоритм, я так понимаю, следующий: 1. Указывается диапазон ячеек (выделяется таблица) 2. Макрос проходит по столбцам в указанном диапазоне и ищет пустые ячейки. 3. Присваивает пустым ячейкам значение предыдущей не пустой
До этого сталкивался с самыми простыми макросами...а тут уже третий день не могу разобраться с кодом и условием.
SkaWolf, здравствуйте, попробуйте следующие варианты: 1 способ. Выделяете нужный диапазон - ctrl+G (или вкладка Главная-Найти и выделить - выделение группы ячеек) - Выделить - пустые ячейки - Ок. Нажимаете на клавиатуре знак "=" - выделяете мышкой ячейку над активной (активная - там, где стоит "=") - нажимаете ctrl+enter. Не забудьте потом преобразовать в значения.
этот же вариант макросом: [vba]
Код
Sub test() With ActiveSheet.UsedRange 'Selection - если нужен выделенный диапазон, а не весь лист .Cells.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" .Value = .Value End With End Sub
[/vba] krosav4ig уже опередил
2 способ. В самой сводной таблице выбрать вкладку Конструктор - Макет отчета - Повторять все подписи элементов.
SkaWolf, здравствуйте, попробуйте следующие варианты: 1 способ. Выделяете нужный диапазон - ctrl+G (или вкладка Главная-Найти и выделить - выделение группы ячеек) - Выделить - пустые ячейки - Ок. Нажимаете на клавиатуре знак "=" - выделяете мышкой ячейку над активной (активная - там, где стоит "=") - нажимаете ctrl+enter. Не забудьте потом преобразовать в значения.
этот же вариант макросом: [vba]
Код
Sub test() With ActiveSheet.UsedRange 'Selection - если нужен выделенный диапазон, а не весь лист .Cells.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" .Value = .Value End With End Sub
[/vba] krosav4ig уже опередил
2 способ. В самой сводной таблице выбрать вкладку Конструктор - Макет отчета - Повторять все подписи элементов.Manyasha
ЯД: 410013299366744 WM: R193491431804
Сообщение отредактировал Manyasha - Вторник, 02.08.2016, 17:08
вот этот пункт лучше заменить на "Стрелку вверх" - оно так и быстрее и шансов промазать меньше . и вообще можно без мыши обойтись после выделения - так оно впечатлительнее выглядит : комбинация для рус. раскладки: если нужно выделить таблицу до конца Ctrl Shift End (одновременно) дальше то что предложила Марина но без мыши: F5(или ctrl+G) Alt В Й Enter = стрелка вверх ctrl+enter
А еще Николай давно сделал замечательную шпору - я из нее кое-чем пользуюсь, особенно когда не на своем компе приходится поработать. Экономит много времени
вот этот пункт лучше заменить на "Стрелку вверх" - оно так и быстрее и шансов промазать меньше . и вообще можно без мыши обойтись после выделения - так оно впечатлительнее выглядит : комбинация для рус. раскладки: если нужно выделить таблицу до конца Ctrl Shift End (одновременно) дальше то что предложила Марина но без мыши: F5(или ctrl+G) Alt В Й Enter = стрелка вверх ctrl+enter
А еще Николай давно сделал замечательную шпору - я из нее кое-чем пользуюсь, особенно когда не на своем компе приходится поработать. Экономит много времениSLAVICK
Manyasha, спасибо за простые решения...век живи, век учись :)))
SLAVICK, спасибо за замечательную шпору...уже распечатал и положил в доступное место :)
Что можете достойного порекомендовать по VBA для самостоятельного изучения? Так как со сменой функционала - это будет теперь мой постоянный головняк.
krosav4ig, спасибо за макрос!
Manyasha, спасибо за простые решения...век живи, век учись :)))
SLAVICK, спасибо за замечательную шпору...уже распечатал и положил в доступное место :)
Что можете достойного порекомендовать по VBA для самостоятельного изучения? Так как со сменой функционала - это будет теперь мой постоянный головняк.SkaWolf
Что можете достойного порекомендовать по VBA для самостоятельного изучения?
форум + на форуме есть спец. тема неформальное общение где можно задавать такого плана вопросы в этой теме продолжать не нужно - не касается названия темы. + на форуме уже есть раздел библиотека [/offtop]
Что можете достойного порекомендовать по VBA для самостоятельного изучения?
форум + на форуме есть спец. тема неформальное общение где можно задавать такого плана вопросы в этой теме продолжать не нужно - не касается названия темы. + на форуме уже есть раздел библиотека [/offtop]SLAVICK