首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用基于文本的IF函数的CorelDraw

使用基于文本的IF函数的CorelDraw
EN

Stack Overflow用户
提问于 2015-12-20 10:15:28
回答 1查看 802关注 0票数 0

我正在尝试创建一个基于页面文本的IF函数。

我正在处理打印合并和填充数十个合并字段,这些字段被隐藏起来,并被分离成层,其中有对象,基于它们所使用的样式。

然后,我手动为该样式设置visibility = True

我知道这个语法是错误的,但为了解释,我想做的是;

代码语言:javascript
复制
If Layer("Style") contains text "MyStyleName"

 Layer("MyStyleName").Visible = True

我目前正在将这段代码与MyStyleLayer1一起使用到MyStyleLayer13左右

代码语言:javascript
复制
If ActivePage.Layers("MyStyleLayer1").Visible = True Then
ActivePage.Layers("MyStyleLayer1").Visible = False
Else: ActivePage.Layers("MyStyleLayer1").Visible = True
End If

每个样式层都分配给键盘快捷方式,并手动显示或隐藏。

我试图使这个过程自动化

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-20 17:55:58

若要隐藏名为contian 'Layer‘的层,可以使用以下代码

代码语言:javascript
复制
Sub HideLayer()
' Recorded 20.12.2015
Dim Mylayer As Layer
Dim searchstring As String
searchstring = "Layer"
 For Each Mylayer In ActivePage.Layers
 If InStr(1, Mylayer.Name, searchstring) > 0 Then
  Mylayer.Visible = False
 End If
 Next
End Sub

显示图层变化

代码语言:javascript
复制
Mylayer.Visible = False

代码语言:javascript
复制
Mylayer.Visible = true

若要在页面上搜索文本中的字符串,请使用以下代码

代码语言:javascript
复制
Public Sub TextFind()
Dim s As Shape
Dim WhatFind as String
Dim CountFind as integer
CountFind = 0
WhatFind = "I"
For Each s In ActiveDocument.ActivePage.Shapes
    If s.Type = cdrTextShape Then
         If InStr(1, s.Text.Story, WhatFind) > 0 Then
         CountFind=CountFind+1
         End If
   End If 
 Next
If CountFind > 0 Then ' do what you want when WhatFind had searched in text
End If
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34379930

复制
相关文章

相似问题

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