ラボテストに基づいて患者情報を提供する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 血清 トロープI 54 mg/dL H * REf。コメント:医師からの患者の詳細情報とメモは、ここに と表示され、非常に柔軟性があります... その他の臨床情報など _________________________________________________________________________ | ____ |腎臓:60-100クリティカル50-399 姓名、最初の患者番号ユニットANC 1234 2/23/2017 15:56 FECES FIT POSITIVE H * REf。コメント:医師からの患者の詳細情報とメモは、ここに と表示され、非常に柔軟性があります。 その他の臨床情報など _________________________________________________________________________ | ____ |腎臓:NEGは "NEG" - "60-100クリティカル:
特定の値、たとえば患者記録のANCまたはFITが見つかった場合は、印刷されたレポートを確認するときにこれらの記録をスキップできます。ですから、アンダースコアのチェックボックスを| SKIP |に置き換えたいと思います。
私はこれを次のループのために簡単に行うことができますが、問題は、特定のレポートに表示される "ARTERIAL BLOOD"または "ANC"または "FECES FIT"がどれだけ多いか分かりません。だから、私はFor NextループをDo While Selection.Find.Execute = Trueステートメントに置き換える方法を見つけようとしています。
しかし、多くのバリエーションを試して、正しい構文を得ることはできません。 ご協力いただければ幸いです!場合
Option Explicit
Sub MultiFind()
Dim valueToSkip() As String
valueToSkip = Split("ANC,FIT,ARTERIAL BLOOD,FECES FIT", Delimiter:=",")
Dim found As Boolean
Dim value As Variant
Dim result As Variant
found = False
For Each value In valueToSkip
With Selection.Find
Set result = .Execute(FindText:=value)
If Not result Is Nothing Then
found = True
Exit For
End If
End With
Next value
If found Then
'--- add |SKIP| here
End If
End Sub
感謝!!私はペーストの版でコードを試しましたが、システムは "Set result = .Execute(FindText:= value)"行で停止します。助けに感謝します。 – KenGooch