You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA处理无规律编号形状时能否用Select Case简化代码?

可以使用Select Case语法简化这类离散编号的批量操作,但是你提到的Select Case 23, 39, 61, 72, 98写法不符合VBA语法规范,正确实现方式如下:

1. Select Case 实现方案

核心逻辑是遍历当前幻灯片所有形状,提取椭圆形状的编号后通过Select Case匹配目标编号,匹配成功就执行样式修改:

Dim shp As Shape
Dim ovalNum As Integer

With nGameSlide
    For Each shp In .Shapes
        ' 筛选所有名称符合"Oval X"格式的形状
        If Left(shp.Name, 5) = "Oval " Then
            ovalNum = CInt(Mid(shp.Name, 6))
            Select Case ovalNum
                ' 多个匹配值直接用英文逗号分隔
                Case 23, 39, 61, 72, 98
                    shp.Fill.ForeColor.RGB = RGB(255, 192, 0)
            End Select
        End If
    Next
End With

如果后续需要增删修改目标编号,只需要调整Case后的值列表即可,维护成本很低。

2. 更简洁的数组遍历方案

如果你的目标编号固定,也可以直接把编号存入数组遍历,代码更短:

Dim targetOvals As Variant
Dim i As Integer
' 把所有需要修改的椭圆编号存入数组
targetOvals = Array(23, 39, 61, 72, 98)

With nGameSlide
    For i = LBound(targetOvals) To UBound(targetOvals)
        .Shapes("Oval " & targetOvals(i)).Fill.ForeColor.RGB = RGB(255, 192, 0)
    Next
End With

内容的提问来源于stack exchange,提问作者Bhavesh Shaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:06:00