我有一个报告,可以是从5到数百页,提供基于实验室测试的患者信息的任何地方。每个患者记录最后用复选框分隔下划线。 “___________ | ____ |”例如:vba do while循环中的多个条件
姓氏,第一个患者数量单位ANC 02 #### 2/23/2017 15:56 BLOOD GLU-ANC 416 mg/dL H * REf。反应:60-100临界50-399 评论:患者的详细信息和医生的笔记在这里显示 ,并且可以非常灵活... 更多临床信息等 _________________________________________________________________________ | ____ | 姓氏,第一个患者编号单位CH 1234 2/23/2017 15:56 SERUM TROP I 54 mg/dL H * REf。反应:60-100临界50-399 评论:患者的详细信息和医生的笔记在这里显示 ,并且可以非常灵活... 更多临床信息等 _________________________________________________________________________ | ____ | 姓氏,第一个患者数量单位ANC 1234 2/23/2017 15:56 FECES FIT正性H * REf。范围:“NEG” - “” 60-100关键:报告 点评:从医生与患者的详细信息和注意事项显示 这里可以非常灵活...... 更多临床信息等 _________________________________________________________________________ | ____ |
如果我在患者记录中找到某个值(例如ANC或FIT),则可以在查看打印报告时跳过这些记录。所以我想用| SKIP |替换下划线复选框。
我可以很容易地做到这一点,为下一个循环,但问题是我不知道有多少“动脉血液”或“ANC”或“FECES FIT”,将出现在给定的报告。所以我一直试图弄清楚如何用Do While Selection.Find.Execute = True语句替换我的For Next循环。
但尝试了很多变化,无法获得正确的语法。 任何帮助将不胜感激!
这是我的工作Next循环
Sub xSimplefind()
Dim vtext As String
vtext = InputBox("Text to find") 'Here I enter 1st search value ie. "ANC"
For i = 1 To 7
With Selection.Find
.Execute FindText:=vtext
Selection.MoveRight Unit:=wdCharacter, Count:=1
End With
'Once I find that first item, I then look for the very next "|_____|"
With Selection.Find
.Execute FindText:="|____|" 'TypeText overwrites Selected text.
Selection.TypeText Text:="|SKIP|"
End With
Next i
End Sub
感谢您的快速响应!!我尝试了我的粘贴版本的代码,但是系统在“Set result = .Execute(FindText:= value)”行停止,我尝试了许多变化,似乎无法通过该点。帮助将不胜感激。 – KenGooch