如何用If-Then语句设置Excel行高为12.6的倍数?
实现Excel行高自动调整后取12.6的整数倍
要实现你要的效果,用VBA完全可以搞定,之前代码没生效大概率是逻辑没写对。核心思路是先让Excel自动算出合适的行高,再把这个行高向上取整到12.6的整数倍,最后设置行高。
直接用这段VBA代码:
Sub SetRowHeightToMultipleOf12Point6() Dim targetRange As Range Dim currentRow As Range Dim autoHeight As Double Dim multiple As Integer ' 这里默认处理你选中的单元格/行,也可以改成固定范围比如ActiveSheet.UsedRange Set targetRange = Application.Selection ' 先让Excel自动调整行高 targetRange.EntireRow.AutoFit ' 遍历每一行处理 For Each currentRow In targetRange.EntireRow autoHeight = currentRow.RowHeight ' 用Ceiling函数向上取整,确保行高足够装下内容 multiple = WorksheetFunction.Ceiling(autoHeight / 12.6, 1) ' 设置成12.6的整数倍 currentRow.RowHeight = multiple * 12.6 Next currentRow End Sub
使用步骤:
- 打开Excel,按
Alt+F11打开VBA编辑器 - 点击菜单栏的「插入」→「模块」,新建一个代码模块
- 把上面的代码粘贴进去,关闭编辑器
- 在Excel里选中需要调整行高的行或者单元格范围
- 按
Alt+F8,选中SetRowHeightToMultipleOf12Point6,点击「执行」就行
注意事项:
- 确保目标单元格已经开启了「自动换行」(右键单元格→设置单元格格式→对齐→勾选自动换行),不然AutoFit不会生效
- 如果需要调整基准值(比如换成其他倍数),直接修改代码里的
12.6就行 - 建议先备份数据再执行,避免意外覆盖原有格式
内容的提问来源于stack exchange,提问作者Aaron Gofreed
相关产品推荐
相关产品推荐

