更改隐藏单元格的字体大小

时间:2018-02-14 10:01:40

标签: vba excel-vba excel

总而言之,我有一个有很多过滤选项的excel。为了适应一些不同的屏幕尺寸,我制作了一个改变列宽和字体大小的宏。

Sub SmallMode()

'
'Change to Small Mode
'font size to 9, various cell widths, Small Mode title
'

Range("B2:Z200").Font.Size = 9
Columns("B").ColumnWidth = 10.86
Columns("C").ColumnWidth = 10.71
Columns("H").ColumnWidth = 33.14
Columns("I").ColumnWidth = 21.86
Columns("J").ColumnWidth = 8.71
Columns("M").ColumnWidth = 10
Columns("N").ColumnWidth = 10
Columns("O").ColumnWidth = 10.57
Columns("S").ColumnWidth = 7.43
Columns("T").ColumnWidth = 5.86
Columns("V").ColumnWidth = 12
Columns("W").ColumnWidth = 7.14
Columns("X").ColumnWidth = 11.43
Columns("Y").ColumnWidth = 14.29
Columns("Z").ColumnWidth = 15.71
Range("Y1").Value = "Small   Mode"

End Sub

我的问题是,虽然宽度很好,但字体只调整当前单元格的大小,而不是隐藏在过滤器下的单元格。有没有办法强制所有这些尺寸合适?

1 个答案:

答案 0 :(得分:0)

已修改,以处理隐藏的列

你可以取消隐藏所有单元格,应用字体格式并最终隐藏以前隐藏的单元格

如下

Dim visibleCells As Range
With Range("B2:Z200")
    Set visibleCells = .SpecialCells(xlCellTypeVisible)
    .EntireRow.Hidden = False 'unhide all rows
    .EntireColumn.Hidden = False 'unhide all rows
    .Font.Size = 9
    .EntireRow.Hidden = True
    .EntireColumn.Hidden = True
End With
With visibleCells
    .EntireRow.Hidden = False
    .EntireColumn.Hidden = False
End With 

Columns("B").ColumnWidth = 10.86 
....