Показать сообщение отдельно
Старый 31.08.2006, 03:52     # 232
deimos
Member
 
Аватар для deimos
 
Регистрация: 06.12.2003
Сообщения: 318

deimos Нимб уже пробиваетсяdeimos Нимб уже пробивается
Доброго времени суток.
В общем есть такая проблемка: есть большая таблица в экселе, в которой столбцами забиты данные. При попытке сортировать данные, эксель ругается, что ячейки разного размера.
Автоматом записал макрос, который разбивает объединенные ячейки, добавляет столбец "Примечание", переносит из разъединенных столбцов содержимое в ячейку столбца примечание и объединяет столбцы чтобы все ячейки в строке были одинаковыми.
Теперь вопрос: как изменить макрос чтобы он автоматом изменил всю таблицу, а не только то, что я изменил, т.е. первые две строки?
Код:
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 31.08.2006 (user)
'

'
    Selection.EntireColumn.Insert
    Columns("I:I").ColumnWidth = 22.43
    Range("I1").Select
    ActiveCell.FormulaR1C1 = "Примечание"
    With ActiveCell.Characters(Start:=1, Length:=10).Font
        .Name = "Arial Cyr"
        .FontStyle = "полужирный"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 2
    End With
    Range("E4:H4").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
    Selection.UnMerge
    Range("E4").Select
    Selection.Cut Destination:=Range("I3")
    Range("E3:E4").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Range("F3:F4").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Range("G3:G4").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Range("H3:H4").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Range("I3:I4").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
End Sub
просто сам я не программист и поэтому сам исправить как надо не могу :-(
Данные для сортировки начинаются с 3 строки. 1,2 строка - это шапка.
__________________
Смысл игры не в том, кто умрет, а в том, кто умрет первым

Последний раз редактировалось deimos; 31.08.2006 в 05:05.
deimos вне форума