总而言之,我有一个有很多过滤选项的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
我的问题是,虽然宽度很好,但字体只调整当前单元格的大小,而不是隐藏在过滤器下的单元格。有没有办法强制所有这些尺寸合适?
答案 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
....