2016-04-06 2 views
2

Я пытаюсь написать сценарий VBA, который включает функцию для удаления перекрытия данных в смежные ячейки и изменения размера ячейки, чтобы она соответствовала длине данных, как показано в следующие привязки.Excel VBA удаляет перекрытие данных в смежные поля

1) Оригинальная компоновка данных в Excel

Before

2) Нажмите на верхний угол пусть руки, чтобы выбрать все поля

Select all fields

3) Двойной щелчок по бокам ячейка в столбцах для изменения размеров ячеек для соответствия длинам данных.

Double click when this cursor appears

В настоящее время я использую .HorizontalAlignment ниже, но это не работает:

With wks 
    With .Cells(1, 1).CurrentRegion 
     lastCol = .Columns.Count 
     lastRow = .Rows.Count 
    End With 

    'Select the interested cells and insert borders around the interested fields 
    .UsedRange.Borders.LineStyle = xlContinuous 
    .UsedRange.HorizontalAlignment = xlLeft 
End With 

ответ

1

Я считаю, что вы ищете метод Range.AutoFit.

Sub allFit() 
    Dim c As Long 

    With Worksheets("Sheet1") 
     With .Cells(1, 1).CurrentRegion 
      For c = 1 To .Columns.Count 
       With .Columns(c) 
        .WrapText = False 
        .AutoFit 
       End With 
      Next c 
     End With 
    End With 

End Sub 
+1

вы могли бы также пойти 'С Таблицах («Лист1»). Cells (1, 1) .CurrentRegion .Columns.AutoFit .WrapText = False End With ' – user3598756

+0

Хорошая точка; что немного подтянет его. Я использовал цикл для использования свойства .columns.count currentregion больше всего на свете. – Jeeped

+0

Конечно, я очень хорошо знал, что вы это знаете ... просто нужно добавить что-то полезное для OP. и я большой поклонник «подтянуть его»! – user3598756

3

Попытайтесь использовать это. Простая функция, в которой вы сначала выбираете лист, где применять, а затем используйте функцию AutoFit в столбцах (что означает все столбцы) и размер столбцов по длине текста. Кроме того, вы можете выбрать только некоторые столбцы и т.д. ... но его на другой вопрос

Sub adjustColumns() 
    Sheets("Sheet3").Columns.AutoFit 
End Sub