vba - 检查对象的属性是否具有值
问题描述
我在 SO 或其他来源上找不到解决方案。如果这是一个令人厌烦的问题,我提前道歉:
我有一个遍历形状占位符的宏。其中一些占位符有文本,有些则没有。我试图弄清楚是否
.Shapes.Placeholder.TextFrame.TextRange
有任何价值(在 VBA 编辑器的“手表”部分,此属性有<The specified value is out of range.>
)。如果是这样,做点什么。否则,继续For Each
声明。但是,我尝试的所有内容都抛出了超出范围的错误或类似类型的错误。
我努力了:
If Not (placeholder.TextFrame.TextRange.Length = 0) Then
: 立即抛出越界错误- Try/catch,在 VBA 中似乎不存在(给我未注册的子或函数)
If Not CStr(placeholder.TextFrame.TextRange) = "0" then
因为我没有任何 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 Next
在For Each
.
解决方案
推荐阅读
- ios - 领域整合
- c# - 在制作对象池时需要帮助
- html - 如何使用仅使用 css 和 html 的换行符来实现打字机效果?
- python - 从多个网址(使用beautifulsoup)中提取标题和表格正文到数据框
- python - 在python中快速解析具有规则结构的可变长度行
- python - 我定义了我的功能,但它不会运行。为什么不?
- java - 将 Redis 与 spring 或 spring boot 一起使用时,默认的缓存策略是什么?
- javascript - 如何在多个事件上运行一个函数?
- c# - 如何将相机夹在鼠标 Y 轴上?
- javascript - 当图像以角度加载时显示加载图标