首页 > 解决方案 > 检查对象的属性是否具有值

问题描述

我在 SO 或其他来源上找不到解决方案。如果这是一个令人厌烦的问题,我提前道歉:

我有一个遍历形状占位符的宏。其中一些占位符有文本,有些则没有。我试图弄清楚是否 .Shapes.Placeholder.TextFrame.TextRange有任何价值(在 VBA 编辑器的“手表”部分,此属性有<The specified value is out of range.>)。如果是这样,做点什么。否则,继续For Each声明。但是,我尝试的所有内容都抛出了超出范围的错误或类似类型的错误。

我努力了:

因为我没有任何 Visual Basic 迭代的经验,所以我完全不了解。如果该属性为空或为空,我只需要跳过占位符。

编辑:根据建议,我尝试了这个:

For Each placeholder In sld.NotesPage.Shapes.Placeholders
    If Not (placeholder.TextFrame Is Nothing) Then
        If Not (placeholder.TextFrame.TextRange Is Nothing) Then
            If Not (placeholder.TextFrame.TextRange.LanguageID Is Nothing) Then
                placeholder.TextFrame.TextRange.LanguageID = lng
            End If
        End If
    End If
Next

我仍然在placeholder.TextFrame.TextRange Is Nothing. 我犯了语法错误吗?

最终编辑:原来在 SO中有一个答案。对于这个特定的问题,On Error Resume NextFor Each.

标签: vbapowerpoint

解决方案


推荐阅读