我希望每当某个单元格的值发生变化时,自动调整工作表中某些行的高度。该值是从下拉列表中选择的。
我已经成功通过一个分配了宏的按钮(窗体控件)调整了高度。下面的代码:
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
答案 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
。