单元格值更改时自动调整行高

时间:2018-11-01 17:43:46

标签: excel vba

我希望每当某个单元格的值发生变化时,自动调整工作表中某些行的高度。该值是从下拉列表中选择的。

我已经成功通过一个分配了宏的按钮(窗体控件)调整了高度。下面的代码:

Sub ResizeHeight()
    Range("C11:F26").Rows.AutoFit
End Sub

在将其与单元格(“ C5”)发生变化的事件相关联时,我遇到了问题。我尝试将宏嵌入到工作表代码中(如下所示),以便每当单元格值发生更改时就会触发该宏,但这不起作用。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Target.Worksheet.Range("D5")) Is Nothing Then
        Call ResizeHeight
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

您在Not语句中缺少If,可以将其简化为以下内容:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("D5")) Is Nothing Then
        Me.Rows("11:26").AutoFit
    End If
End Sub

或者,如果您希望将ResizeHeight保留为单独的子例程,请替换

Me.Rows("11:26").AutoFit

ResizeHeight

请注意,Call语句是不必要的,并且ActiveSheet中有一个隐含的ResizeHeight