Excel VBA代码强制某个缩放级别

时间:2012-01-30 10:08:04

标签: excel vba

我在Excel中有一个Validated Dropdown列表,如果缩放小于100则无法读取。我在互联网上检查并确认我无法改变验证列表文本大小的大小,所以我想强制设置缩放100。

我有以下代码执行此操作

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveWindow.Zoom = 100
End Sub

这适用于使用缩放小于100的人,但如果人们使用大于100的缩放,则会将缩放限制为100.有没有办法克服这个问题,这与If-Else的内容类似。言。

如果缩放小于100,则缩放= 100 否则,如果缩放大于100则不执行任何操作

感谢。

3 个答案:

答案 0 :(得分:12)

If (ActiveWindow.Zoom < 100) Then

    ActiveWindow.Zoom = 100

End If

答案 1 :(得分:6)

这是一个可以做同样事情的单线:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  ActiveWindow.Zoom = Application.Max(ActiveWindow.Zoom, 100)
End Sub

答案 2 :(得分:0)

要解决返回到默认的先前缩放级别(并防止不必要的缩放闪烁,我建议:

'Assumed default zoom level= 70
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Temp As Byte
Temp = 0
        If Not Intersect(Target, Range("G3:H9999")) Is Nothing Then
             If ActiveWindow.Zoom <= 70 Then ActiveWindow.Zoom = 100
             Temp = 1
        End If
        
        If Not Intersect(Target, Range("E2:E9999")) Is Nothing Then
                If ActiveWindow.Zoom <=70 Then ActiveWindow.Zoom = 100
               Temp = 1
        End If
        
       If Temp = 0 And ActiveWindow.Zoom = 100 Then ActiveWindow.Zoom = 70
End Sub