Karataev, Вот вам пример. Общий смысл - это привести смету в порядок для распечатки. Соот-но, удаляем лишние пустые строки (только в диапазоне таблицы), убираем жирность ячеек, кроме нужных ячеек и убираем цвета. У меня макрос выглядит вот так, может можно как-то короче все устроить:[vba]
Код
Sub Подготовка_сметы()
Set wb1 = ActiveWorkbook
lSt = wb1.Sheets(smetaName).Cells.Find(What:="Итого на материал:").Row
With Worksheets(1) If Range("A4") = "" Then Range("A1:A" & lSt + 3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If If Range("A" & lSt - 2) = "" Then Range("A1:A" & lSt + 3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If If Range("A" & lSt + 1) = "" Then Range("A1:A" & lSt + 3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If
Range("A1:A" & lSt).Font.Color = vbBlack 'Меняем цвет ячеек на черный цвет Range("A4:A200").Font.Bold = False ' убираем жирность ячеек End With
Dim rng As Range Dim n With Worksheets(1) Set rng = .Range("A4:A200")
For Each n In rng Select Case n Case "Этап №1" n.Font.Bold = True 'Добавляем к определенным ячейкам жирность шрифта Case "Этап №2" n.Font.Bold = True Case "Этап №3" n.Font.Bold = True Case "Этап №4" n.Font.Bold = True Case "Этап №5" n.Font.Bold = True Case "Этап №6" n.Font.Bold = True Case "Этап №7" n.Font.Bold = True Case "Этап №8" n.Font.Bold = True Case "Этап №8" n.Font.Bold = True Case "Этап №9" n.Font.Bold = True Case "Этап №10" n.Font.Bold = True
Case "Итого (этап №1):" n.Font.Bold = True Case "Итого (этап №2):" n.Font.Bold = True Case "Итого (этап №3):" n.Font.Bold = True Case "Итого (этап №4):" n.Font.Bold = True Case "Итого (этап №5):" n.Font.Bold = True Case "Итого (этап №6):" n.Font.Bold = True Case "Итого (этап №7):" n.Font.Bold = True Case "Итого (этап №8):" n.Font.Bold = True Case "Итого (этап №9):" n.Font.Bold = True Case "Итого (этап №10):" n.Font.Bold = True
Case "Итого на работу:" n.Font.Bold = True Case "Итого на материал:" n.Font.Bold = True End Select Next n End With
End Sub
[/vba]
Karataev, Вот вам пример. Общий смысл - это привести смету в порядок для распечатки. Соот-но, удаляем лишние пустые строки (только в диапазоне таблицы), убираем жирность ячеек, кроме нужных ячеек и убираем цвета. У меня макрос выглядит вот так, может можно как-то короче все устроить:[vba]
Код
Sub Подготовка_сметы()
Set wb1 = ActiveWorkbook
lSt = wb1.Sheets(smetaName).Cells.Find(What:="Итого на материал:").Row
With Worksheets(1) If Range("A4") = "" Then Range("A1:A" & lSt + 3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If If Range("A" & lSt - 2) = "" Then Range("A1:A" & lSt + 3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If If Range("A" & lSt + 1) = "" Then Range("A1:A" & lSt + 3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If
Range("A1:A" & lSt).Font.Color = vbBlack 'Меняем цвет ячеек на черный цвет Range("A4:A200").Font.Bold = False ' убираем жирность ячеек End With
Dim rng As Range Dim n With Worksheets(1) Set rng = .Range("A4:A200")
For Each n In rng Select Case n Case "Этап №1" n.Font.Bold = True 'Добавляем к определенным ячейкам жирность шрифта Case "Этап №2" n.Font.Bold = True Case "Этап №3" n.Font.Bold = True Case "Этап №4" n.Font.Bold = True Case "Этап №5" n.Font.Bold = True Case "Этап №6" n.Font.Bold = True Case "Этап №7" n.Font.Bold = True Case "Этап №8" n.Font.Bold = True Case "Этап №8" n.Font.Bold = True Case "Этап №9" n.Font.Bold = True Case "Этап №10" n.Font.Bold = True
Case "Итого (этап №1):" n.Font.Bold = True Case "Итого (этап №2):" n.Font.Bold = True Case "Итого (этап №3):" n.Font.Bold = True Case "Итого (этап №4):" n.Font.Bold = True Case "Итого (этап №5):" n.Font.Bold = True Case "Итого (этап №6):" n.Font.Bold = True Case "Итого (этап №7):" n.Font.Bold = True Case "Итого (этап №8):" n.Font.Bold = True Case "Итого (этап №9):" n.Font.Bold = True Case "Итого (этап №10):" n.Font.Bold = True
Case "Итого на работу:" n.Font.Bold = True Case "Итого на материал:" n.Font.Bold = True End Select Next n End With