Доброго дня посетители форума. Подскажите как быстро отформатировать 20000 строк? Есть шаблон, в который вставляются данные из стороннего файла. Копировать и вставлять форматы очень долго. Может кто поможет советом? Если можно сделать макросом, то буду благодарен.
Доброго дня посетители форума. Подскажите как быстро отформатировать 20000 строк? Есть шаблон, в который вставляются данные из стороннего файла. Копировать и вставлять форматы очень долго. Может кто поможет советом? Если можно сделать макросом, то буду благодарен.Mark1976
В шаблоне сразу оформите строку 5 так как надо и пусть она остается пустой. После вставки данных запустите этот макрос. Этот макрос будет копировать форматирование из строки 5 на все строки с данными. [vba]
Код
Sub Скопировать_формат()
Dim lr As Long
Application.ScreenUpdating = False
lr = Columns("A:L").Find(What:="*", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _ , SearchFormat:=False).Row If lr > 5 Then Rows(5).Copy Rows("6:" & lr).PasteSpecial xlPasteFormats Application.CutCopyMode = False End If
Application.ScreenUpdating = True
End Sub
[/vba]
В шаблоне сразу оформите строку 5 так как надо и пусть она остается пустой. После вставки данных запустите этот макрос. Этот макрос будет копировать форматирование из строки 5 на все строки с данными. [vba]
Код
Sub Скопировать_формат()
Dim lr As Long
Application.ScreenUpdating = False
lr = Columns("A:L").Find(What:="*", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _ , SearchFormat:=False).Row If lr > 5 Then Rows(5).Copy Rows("6:" & lr).PasteSpecial xlPasteFormats Application.CutCopyMode = False End If
Я обычно форматирую какую-то строку (не обязательно первую в таблице, обычно одну из строк выше (ее потом можно скрыть группировкой (Данные - Группировать))) и заполняю ее чем-нибудь (единичками, например) Потом, после вставки значений, копирую эту строку, встаю в первую строку таблицы, которую нужно отформатировать, жму Контрл + Шифт + Енд, Правая кнопка мыши - вставить форматы (ну или спецвставкой). А вообще я на ленту панель быстрого доступа вывел кнопку "Вставить форматы" - так быстрее.
Я обычно форматирую какую-то строку (не обязательно первую в таблице, обычно одну из строк выше (ее потом можно скрыть группировкой (Данные - Группировать))) и заполняю ее чем-нибудь (единичками, например) Потом, после вставки значений, копирую эту строку, встаю в первую строку таблицы, которую нужно отформатировать, жму Контрл + Шифт + Енд, Правая кнопка мыши - вставить форматы (ну или спецвставкой). А вообще я на ленту панель быстрого доступа вывел кнопку "Вставить форматы" - так быстрее._Boroda_
решил весь макрос выложить, т.к. надо менять в трех местах: [vba]
Код
Sub Скопировать_формат()
Dim lr As Long
Application.ScreenUpdating = False
lr = Columns("A:L").Find(What:="*", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _ , SearchFormat:=False).Row If lr > 2 Then Rows(2).Copy Rows("3:" & lr).PasteSpecial xlPasteFormats Application.CutCopyMode = False End If
Application.ScreenUpdating = True
End Sub
[/vba]
решил весь макрос выложить, т.к. надо менять в трех местах: [vba]
Код
Sub Скопировать_формат()
Dim lr As Long
Application.ScreenUpdating = False
lr = Columns("A:L").Find(What:="*", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _ , SearchFormat:=False).Row If lr > 2 Then Rows(2).Copy Rows("3:" & lr).PasteSpecial xlPasteFormats Application.CutCopyMode = False End If