VBA Excel工作表更改自动调整行

时间:2013-03-15 11:24:42

标签: excel-vba vba excel

我在标准模块中有这个代码,工作正常:

Public Sub AutofitRows()
ThisWorkbook.Worksheets("Data").Cells.EntireRow.AutoFit
End Sub

然后我在Data工作表模块中有这个代码,由于某种原因,它不会自动调整所有行:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$3" Then

Call AutofitRows

End If

End Sub

有人可以解释一下如何纠正这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

Public Sub AutofitRows()
    Dim rng As Range
    Set rng = ThisWorkbook.Worksheets("Data").Rows("3:3")
    rng.AutoFit
End Sub

假设您的下面的代码驻留在工作表(“数据”)上。当单元格B3中的值发生变化时,也会调用该过程。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$3" Then
        Call AutofitRows
    End If
End Sub