扩展数据验证框

时间:2014-07-25 18:47:05

标签: excel vba

我在电子表格的顶行有几个数据验证下拉框。我在选择单元格时使用以下代码来扩展框大小(以帮助用户查看其选项)。我在使VBA脚本在将列返回到正常宽度时忽略列A:C时遇到问题。这些列应固定为20,其他列返回8.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Cells.Count > 1 Then Exit Sub
  If Intersect(Target, Range("D1:AP1")) Is Nothing And Target.Columns <> "A1:C1" Then
    ActiveWindow.Zoom = 100
     Target.Columns.ColumnWidth = 8
  Else
    ActiveWindow.Zoom = 120
     Target.Columns.ColumnWidth = 30
  End If
End Sub

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,代码应该是:

Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then
    Exit Sub
    Application.ScreenUpdating = True
End If
Set xx = Application.Intersect(Target, Range("D1:AP1"))
If xx Is Nothing Then
    ActiveWindow.Zoom = 100
    For i = 4 To 42
        If Columns(i).Hidden = False Then Columns(i).ColumnWidth = 8
    Next
Else
    ActiveWindow.Zoom = 120
    Target.Columns.ColumnWidth = 30
End If
Application.ScreenUpdating = True

目标cor A列C:C的控制应在之后进行。
当我返回时,我更喜欢将列D:AP的所有宽度变为chaneg 我对代码进行了一些操作...添加检查是否为隐藏,并且使用 Application.ScreenUpdating 行,代码仅在结尾处显示。
我也删除了非必要的代码(如果......)。