如何在Word VBA中选中文件名包含可变指定短语的目标文档
实现激活目标Word文档的VBA代码
你可以直接在现有代码基础上追加以下逻辑,即可匹配并激活目标Doc B文档:
' 你原有的代码 strPrompt = "Please enter HD number and Draft." & vbCrLf & "Enter number only, followed by a space, then draft number with no spaces." strHR = InputBox(strPrompt, "HR number and draft") ' 新增判断:用户点击取消时直接退出,避免空值报错 If strHR = "" Then Exit Sub ' 定义文档对象变量 Dim targetDoc As Document Dim doc As Document Dim isFound As Boolean isFound = False ' 遍历当前Word所有已打开的文档,匹配文件名关键词 For Each doc In Application.Documents ' 匹配规则:文件名包含"HR"拼接你输入的内容,不区分大小写 If InStr(1, doc.Name, "HR" & strHR, vbTextCompare) > 0 Then Set targetDoc = doc isFound = True Exit For End If Next ' 匹配结果处理 If isFound Then ' 激活目标文档,后续可直接执行复制操作 targetDoc.Activate ' --- 你原有文本复制的代码写在此处即可 --- Else MsgBox "未找到文件名包含 HR" & strHR & " 的已打开文档,请确认文件是否已正常开启", vbExclamation End If
补充说明
- 后续操作也可以直接用
targetDoc对象调取文档内容,不需要依赖激活后的活动文档,稳定性更高,比如targetDoc.Range.Copy就能直接复制目标文档的全量内容 - 上述代码默认目标文档已经提前在Word中打开,如果需要实现自动查找本地路径下的未打开文档,可以再补充文件遍历逻辑
内容的提问来源于stack exchange,提问作者shayshaylearnstocode
相关产品推荐
相关产品推荐

