Excel vba перемещает столбцы и сохраняет ширину - PullRequest
0 голосов
/ 08 марта 2011

У меня есть код для перемещения столбцов влево и вправо на основе нажатий клавиш, но ширина столбцов не сохраняется при перемещении столбцов. Мне бы хотелось, чтобы столбец, который я перемещаю, сохранил свою ширину, а столбцы, по которым он перемещается, также сохранили свою ширину.

Public Sub moveColumnleft()

    ActiveCell.EntireColumn.Select
    Selection.EntireColumn.Cut
    If ActiveCell.Column = 1 Then Exit Sub

    ActiveCell.offset(0, -1).Insert Shift:=xlLeft
    ActiveCell.offset(0, -1).Select


End Sub

Public Sub moveColumnRight()

    ActiveCell.EntireColumn.Select
    Selection.EntireColumn.Cut
    ActiveCell.offset(0, 2).Insert Shift:=xlRight
    ActiveCell.offset(0, 1).Select

End Sub

1 Ответ

2 голосов
/ 08 марта 2011

Сохранение перемещенного столбца сработало для меня (Excel 2007). Смотрите код ниже

Public Sub moveColumnleft()
    ActiveCell.EntireColumn.Select
    Selection.EntireColumn.Cut
    '' store column width in variable **tmp**
    Dim tmp As Double 
    tmp = ActiveCell.EntireColumn.ColumnWidth
    If ActiveCell.Column = 1 Then Exit Sub

    ActiveCell.Offset(0, -1).Insert Shift:=xlLeft
    ActiveCell.Offset(0, -1).Select
    '' apply the stored width to the moved column
    Range(ActiveCell.Address).ColumnWidth = tmp
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...