自动筛选具有最大宽度条件的列?

时间:2019-06-18 16:47:38

标签: excel vba formatting

在VBA中,我想设置整个工作簿中的列的格式以自动拟合数据,但是最大宽度为50或75(不建议使用50或75的宽度作为建议)。我之所以要这样做,是因为我的某些字段可以具有很长的值,并且我不想让浏览工作簿很困难。我不想仅添加最大宽度,因为我希望自动填充小于该宽度的单元格。

我有使用VBA代码中的循环自动填充列的代码,但不知道如何添加最大宽度条件。

到目前为止,我的代码如下:

Dim sht As Worksheet
Sheets("Index").Select
  On Error Resume Next
    For Each sht In ThisWorkbook.Worksheets
      sht.Cells.SpecialCells(xlCellTypeVisible).EntireColumn.AutoFit
    Next sht
On Error GoTo 0

没有错误消息,代码效果很好。但是,我需要添加最大宽度条件,但不确定如何。

1 个答案:

答案 0 :(得分:3)

您可能需要遍历使用的列以一次更改其宽度:

Sheets("Index").Select
  On Error Resume Next
    For Each sht In ThisWorkbook.Worksheets
      sht.Cells.SpecialCells(xlCellTypeVisible).EntireColumn.AutoFit
         For c = sht.UsedRange.Column To sht.UsedRange.SpecialCells(xlCellTypeLastCell).Column
             If sht.Cells(1, c).ColumnWidth > 75 Then sht.Cells(1, c).ColumnWidth = 75
         Next c
    Next sht
  On Error GoTo 0