根据VBA中行的最大值扩展列宽

时间:2016-08-07 13:40:33

标签: excel vba excel-vba

我有一个包含多个列的电子表格,我正在考虑根据每行中的值扩展列。

如果行中的值大于列宽,则展开为行值的宽度。

但是,下面的代码会根据一列中的值扩展列,并将宽度设置为所有列。

Dim j As Integer, m As Integer
    With tRange.Columns
    .AutoFit

        m = ActiveCell.Offset(-1, 0).Columns(1).ColumnWidth

        For j = 1 To .Columns.Count
            If .Columns(j).ColumnWidth > m Then m = .Columns(j).ColumnWidth
        Next j

        .ColumnWidth = m
    End With

有没有办法让列宽基于每列并单独设置宽度而不是全局设置宽度?

希望你知道我的意思!

2 个答案:

答案 0 :(得分:0)

要为单个Range自动设置列,您可以使用Sub,如下所示:

Option Explicit

Sub Test()
    AutoFitRangeColumn Sheet2.Range("B4")
End Sub

Sub AutoFitRangeColumn(ByVal rng As Range)
    rng.EntireColumn.AutoFit
End Sub

答案 1 :(得分:0)

替换整个代码
tRange.Columns.AutoFit

这会将您范围内的每一列(“tRange”)设置为该列的适当大小。