首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法直接访问visio形状

无法直接访问visio形状
EN

Stack Overflow用户
提问于 2013-04-28 16:42:09
回答 2查看 244关注 0票数 0

我有一个关于在visio 2003中访问形状的问题。

代码语言:javascript
复制
...
dim ovp as visio.page
dim ovs as visio.shape
...
set ovs = ovp.shapes("#shapename#")
...do something with the shape

这有时不起作用!

它会给出类似于shape not found或类似的错误

代码语言:javascript
复制
...
dim ovp as visio.page
dim ovs as visio.shape
...
for each ovs in ovp.shapes

   if ovs.name = "#shapename#" then
   ...do something with the shape

   end if

next

这总是有效的。知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-28 17:16:00

这是一种可能性:

执行set ovs = ovp.shapes("#shapename#")时,VBA将以区分大小写的方式查找与形状名称完全匹配的项。

当您执行if ovs.name = "#shapename#"并且在模块中定义了Option Compare Text时,它将执行不区分大小写的比较。

因此,在这种特定情况下,如果以下两个条件都成立,您可能会得到您所描述的结果:

在您要搜索的形状名称的大小写中,您声明的Option Compare Text

  • You
  1. 不匹配。例如,形状名为"#shapename#".

,但您正在搜索"#ShapeName#"

你能发表评论来澄清这些内容是否适用吗?

票数 1
EN

Stack Overflow用户

发布于 2013-04-29 00:24:50

你从哪里得到#shapename#的?作为一个测试,在foreach ovs.name中放置一个debug.print ovs,以查看您在该集合中处理哪些名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16261148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档