vba - 如何编写一个 CATIA 宏,该宏在图纸中搜索一组文本并替换它们
问题描述
我目前正在尝试编写一个 CATIA 宏来搜索 2D CATIA 图纸上的特定文本:“DD/MM/YYY”,并用用户输入的文本替换相同的文本。(基本上是更新文本框)
我目前是 VBA 脚本语言的新手,并且在这方面的经验为零甚至没有。我对此进行了广泛的研究,但没有发现任何代码接近于实现我要解决的问题。
由用户替换的文本框内容
解决方案
这个简短的片段将搜索所有文本实体并尝试用固定字符串替换:
Sub Catmain()
Dim oDoc As Document
Dim oView as DrawingView
Dim oText As DrawingTexts
Dim txt_to_src As String
Dim txt_to_place As String
Dim n As Integer
n = 0
Set oDoc = CATIA.ActiveDocument
Set oSheets = oDoc.Sheets
Set oViews = oSheets.ActiveSheet.Views
Set oView = oViews.ActiveView
Set oTexts = oView.Texts
txt_to_src = "STACK OVERFLOW."
txt_to_place = "REPLACED"
For Each srcText In oTexts
If srcText.Text = txt_to_src Then
srcText.Text = txt_to_place
n = n + 1
End If
Next
MsgBox n & " text frames have been replaced"
End Sub
这仅搜索打开文档的活动工作表的活动视图中的所有文本。考虑使用更具体的检查标准,例如 Instr(检查一个字符串是否包含在另一个字符串中),所使用的相等性只是一个代表性检查。您可能需要循环工作表的所有视图(即 oViews 集合的所有项目)和文档的所有工作表(即 oSheets 集合的所有项目)。如果需要,然后扩展以循环所有打开的绘图文档。
请记住,带有标题栏的空文档已经有 2 个视图(背景和主视图),因此如果您的绘图只有 1 个前视图,则脚本必须循环显示 3 个视图。
推荐阅读
- python-3.x - selenium.common.exceptions.NoSuchElementException 错误尝试使用 Selenium 和 Python 识别要单击的元素
- php - 在 Laravel 上获取控制器实例的空白屏幕
- android - 如何让imageView全屏android
- python - 缺少某种形式的单词不是用 wordnet 生成的
- android - Android studio firebase auth uid在数据库中使用
- javascript - 这个 Three.js skybox 代码里面有什么问题?
- python-3.x - 如何根据其他列字符串为新列赋值?
- amazon-web-services - 如何验证接口 VPC 终端节点运行良好?
- selenium - 如何运行跨浏览器测试 - BrowserStack 上的 Selenium 测试
- google-cloud-platform - 已恢复的 Google Cloud 项目中的权限问题