我有这份报告,我想增加垂直单元格填充以使其更易于阅读。
现在,通常您可以选择多行并更改行高,直到您满意为止。
但是,在这种情况下,我的单元格中有换行文本和多行文本。我无法更改行高,因为换行文本会被截断。
我想做的是增加将一组单元格的行高调整为某个值。而不是简单地将其更改为指定值。即。
rowheight = rowheight + X
不是
rowheight = X
你能在 Excel 中做到这一点吗?我需要 VBA 吗?
答案1
我会选择下面的代码……不确定是否有办法一次将其应用于所有行。如果这里有其他人知道,我会很高兴(并投赞成票):)
Sub fixRowHeight()
Dim oRange As Excel.Range
Dim oRow As Excel.Range
Dim dblFactor As Double
Set oRange = Sheets(1).Range("A1:B25")
dblFactor = 5
For Each oRow In oRange.Rows
oRow.RowHeight = oRow.RowHeight + dblFactor
Next oRow
End Sub
答案2
我刚刚遇到了这个问题和上述解决方案在某些情况下并不令人满意。
- 在某处插入一列 - 可能是 A 列。选择整列。
- 给它最厚的顶部/底部边框 - 固体脂肪条 - 应用/确定。
- 选择您想要填充的所有其他列。将它们垂直居中。
- 隐藏边框列并保存。
这样可以为您提供大约 3 个单位/5px 的顶部和底部填充。使用 Arial,这足以使顶部和尾部不接触单元格边缘。
提供的 VBA 代码很好。但是,如果有人查看了您的电子表格,需要缩小某些列的范围,并因此删除手动格式或应用自己的格式,它就会失效。如果用户知道他们在做什么,他们会按 Ctrl + A 并双击行指示器以自动调整所有行的高度。
使用边框提供了一种始终有效的解决方案,除非手动格式化。
答案3
阐述在答案上从蒂亚戈·卡多佐,我添加了一个条件来检查,以确保在使用调整大小因子变量增加行高时不超过最大行高。
Sub FixRowHeight()
Dim oRange As Excel.Range
Dim oRow As Excel.Range
Dim dblFactor As Double
Set oRange = Sheets(1).Range("A1:O367")
dblFactor = 12
For Each oRow In oRange.Rows
If oRow.RowHeight + dblFactor <= 409.5 Then
oRow.RowHeight = oRow.RowHeight + dblFactor
Else
oRow.RowHeight = 409.5
End If
Next oRow
End Sub
答案4
这里有一个宏可以帮助您。
首先,它将每个单元格的垂直对齐方式设置为Center
。
接下来,当前高度每个细胞并添加7.5(这相当于10 像素)。最后,它会在单元格的顶部和底部添加 5 像素的填充。只需根据您的喜好调整此值即可。
Sub PadCells()
Set cr = Selection
For Each cr In cr.Rows
newHeight = cr.RowHeight + 7.5
cr.VerticalAlignment = xlCenter
cr.RowHeight = newHeight
Next cr
End Sub
使用方法:
- 选择要调整高度的单元格。
- 运行宏。