You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Excel VBA设置行高的IF条件判断没有生效?

问题原因

当你定义的Rng包含多行数据时,Rng.EntireRow.RowHeight属性仅在所有行的行高完全一致时才会返回具体的高度数值,只要范围内存在任意两行高度不同,该属性就会返回Null。Null < 45的逻辑判断结果为假,因此IF分支完全不会触发,这就是加了条件后代码没有效果的核心原因。

解决方法

如果你需要只调整行高不足45的行、保留原本高于45的行的设置,可逐行遍历目标范围做判断,修正后代码如下:

Sub Row_Height()
    Dim Rng As Range
    Dim RowItem As Range
    
    Set Rng = ActiveSheet.Range("A3", Cells(Rows.Count, "A").End(xlUp))
    
    ' 遍历每一行单独判断行高
    For Each RowItem In Rng.Rows
        If RowItem.RowHeight < 45 Then
            RowItem.RowHeight = 45
        End If
    Next
End Sub

如果你不需要保留原本更高的行高设置,只要所有目标行高度统一为45即可满足需求,直接去掉IF判断、赋值Rng.EntireRow.RowHeight = 45即可。

内容的提问来源于stack exchange,提问作者Leedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:06:02