vba - 如果满足条件,如何删除书签之前的一串文本?
问题描述
首先,我是这方面的新手。
情况如下: 生成文档时,VBA 宏正在编辑 Word 模板。我需要通过删除一组文本字符串 (A) 并将其替换为不同的文本字符串 (B) 来改进 VBA 宏,条件是在文档中可以找到另一个特定的文本字符串 (C)。
有一个布尔函数
Function findrange(tekst As String) As Boolean
Set place = Documents(ActiveDocument.Name).Content
If place.Find.Execute(findtext:=tekst) = True Then
findrange = True
Else
findrange = False
End If
End Function
通过它我可以确定是否在文档中找到了该文本字符串 (A)。到目前为止,一切都很好。
我需要的是删除该文本字符串(A),如果它在文档中找到,条件是在文档中可以找到另一个文本字符串(C)。
我该怎么做?我试过了
If findrange("C") = True Then
If findrange("A") = True Then place.Text = ""
但是 If True Then 显然不允许嵌套 Ifs。
解决方案
您需要设置两个 Range 变量。
Dim rngA as Word.Range
Dim rngC as Word.Range
然后在使用 findRange 函数找到 Text(A) 后,您需要将找到的范围存储在 rngA 变量中。
Set rngA = place.Range
接下来,使用 Text(C) 再次运行 findRange 函数,假设找到它,您可以将 rngA.text 替换为 Text(B) 数据。
推荐阅读
- python - 如何使用 Selenium TimeoutException 修复未绑定的本地错误
- javascript - 在 ReactJS 中使用按钮过滤数据
- linux - i3 将编号分配给窗口并移动到编号
- python - 在 python3.6 上安装 pycrypto
- ckeditor5 - CKEditor 5 Angular 与提及插件
- excel - VBA 从工作表选择中取消选择行和列
- outlook - AdaptiveCard 无法在 Office 365 Proplus Outlook 中呈现
- mysql - 根据另外两列的范围在两列中扩展日期
- firebase - Firestore 云功能在不部署功能的情况下不会触发
- ansible - ansible fetch模块的问题