Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA代码强制某个缩放级别_Excel_Vba - Fatal编程技术网

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

Excel VBA代码强制某个缩放级别,excel,vba,Excel,Vba,我在Excel中有一个已验证的下拉列表,如果缩放小于100,该列表将无法读取。我在互联网上检查并发现我无法更改已验证列表文本大小的大小,因此我希望强制执行100的缩放设置 我的代码如下所示 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveWindow.Zoom = 100 End Sub 这对使用“缩放小于100”的用户有效,但如果用户使用大于100的缩放,则会将缩放限制为100。有没有一种方法可以克

我在Excel中有一个已验证的下拉列表,如果缩放小于100,该列表将无法读取。我在互联网上检查并发现我无法更改已验证列表文本大小的大小,因此我希望强制执行100的缩放设置

我的代码如下所示

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveWindow.Zoom = 100
End Sub
这对使用“缩放小于100”的用户有效,但如果用户使用大于100的缩放,则会将缩放限制为100。有没有一种方法可以克服这个问题,就像If-Else语句一样

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

谢谢。

如果(ActiveWindow.Zoom<100)那么
If (ActiveWindow.Zoom < 100) Then

    ActiveWindow.Zoom = 100

End If
ActiveWindow.Zoom=100 如果结束
这里有一个单行程序可以完成同样的任务:

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

要解决返回默认上一个缩放级别的问题(并防止不必要的缩放闪烁),我建议:

'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
“假定默认缩放级别=70”
专用子工作表\u选择更改(ByVal目标作为范围)
作为字节的Dim Temp
温度=0
如果不相交(目标,范围(“G3:H9999”))则为零

如果ActiveWindow.Zoom您回答了自己的问题:“如果Zoom小于100,则Zoom=100”
如果ActiveWindow.Zoom<100那么ActiveWindow.Zoom=100
我已经回答了如果小于100则将缩放增加到100的部分,我卡住的地方是如果用户将缩放设置为110,例如,单击单元格后缩放将变为100。我不希望发生这种情况,如果视图为110,则应保持该级别。我如果ActiveWindow.Zoom<100,那么ActiveWindow.Zoom=100
意味着“否则什么都不做”.但是当我将缩放设置为115并单击单元格时,缩放自动更改为100。我的错是,我正在使用上面问题中的代码。然而,当我将代码更改为@Steven提供的代码时,它按照我希望的方式工作。因此,感谢Steven和Jean François Corbett。