gpt4 book ai didi

vba - 应用选择案例

转载 作者:行者123 更新时间:2023-12-04 21:16:55 25 4
gpt4 key购买 nike

当前代码如下:

For Each s In myReport.Sheets
If s.Name = "Data" Then
s.Activate
Excel.ActiveWindow.Zoom = 80
End If
If Left(s.Name, 7) = "Charts_" Then
s.Activate
Excel.ActiveWindow.Zoom = 77
End If
If s.Name = "definitions" Then
s.Activate
Excel.ActiveWindow.Zoom = 75
End If
If s.Name = "Summary" Then
s.Activate
Excel.ActiveWindow.Zoom = 71
End If
Next

使用 Select Case 可以提高效率吗? ?我不知道如何申请 VBA在这种情况下选择案例的版本。

最佳答案

这是我尝试使用 Select Case - 虽然我更喜欢 KazJaw 的 If/ElseIf ,因为它更加灵活。

Dim z as Integer

For Each s in myReport.Sheets
Select Case UCase(s.Name)
Case "DATA": z = 80
Case "DEFINITIONS": z = 75
Case "SUMMARY": z = 71
Case Else:
If Left(s.Name, 7) = "Charts_" Then
z = 77
Else
z = 0
End If
End Select
If z Then
s.Activate
ActiveWindow.Zoom = z
End If
Next s

或者,您可以创建一个非常灵活的 Select Case具有以下技巧的声明:
For Each s In ThisWorkbook.Sheets
Select Case True
Case s.Name = "Data": z = 80
Case Left(s.Name, 7) = "Charts_": z = 77
Case s.Name = "Defintions": z = 75
Case s.Name = "Summary": z = 71
Case Else: z = 0
End Select
If z Then
s.Activate
ActiveWindow.Zoom = z
End If
Next s

正如您从两个示例中看到的那样,第一个 Select Case 允许您为每个比较执行一个中心代码(例如 UCase,无论如何这是一个很好的做法),而第二个为您提供完全的灵 active - 但在除了 If/ElseIf/... 之外什么都没有结束陈述!

关于vba - 应用选择案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20317630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com