CorelDraw使用IF函数基于文字

CorelDraw using IF function based on text

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

我正在处理打印合并并填充数十个合并字段,这些合并字段被隐藏并根据对象所采用的样式分成多个层。

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

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

If Layer("Style") contains text "MyStyleName"

 Layer("MyStyleName").Visible = True

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

If ActivePage.Layers("MyStyleLayer1").Visible = True Then
ActivePage.Layers("MyStyleLayer1").Visible = False
Else: ActivePage.Layers("MyStyleLayer1").Visible = True
End If

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

我正在尝试自动执行此过程

要隐藏名称为 contian 'Layer' 的图层,您可以使用此代码

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

显示图层变化

Mylayer.Visible = False

Mylayer.Visible = true

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

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