如何根据字典检查多个捕获的字符串,并在其中一个丢失时发出警报?(VBA)



如果在字典中找不到任何捕获的单词,我需要获取false值。但到目前为止,我得到的是,如果它在决策中找到至少一个词,它就会返回值true。

Sub stringnotfound()
Dim ibmCurrentTerminal As IbmTerminal
Dim ibmCurrentScreen As IbmScreen
Dim hiddenTextEntry As String
Dim returnValue As Integer
Dim timeout As Integer
Dim waitText As String
Dim alert(0 To 1) As String
timeout = 15000
Set ibmCurrentTerminal = ThisFrame.SelectedView.control
Set ibmCurrentScreen = ibmCurrentTerminal.screen

Dim Pos(1) As String
Dim wordDictonary   As String
Dim myArray         As Variant
Dim cnt             As Long
Dim lin             As Long
Dim hasWord         As Boolean
wordDictonary = "Lorem ipsum1,Lorem ipsum2,Lorem ipsum3,Lorem ipsum3,Lorem ipsum3,Lorem ipsum4"
myArray = Split(wordDictonary, ",")
If ibmCurrentScreen.GetText(13, 7, 12) <> "" Then Pos(0) = ibmCurrentScreen.GetText(13, 7, 12)
If ibmCurrentScreen.GetText(14, 7, 12) <> "" Then Pos(1) = ibmCurrentScreen.GetText(14, 7, 12)
For lin = 0 To 1
For cnt = LBound(myArray) To UBound(myArray)
If InStr(1, Pos(lin), Trim(myArray(cnt))) Then hasWord = True
Next cnt
Next lin

If hasWord = False Then MsgBox "captured" & MISSING & "words missing from the dictionary"
End Sub

如有任何帮助,我们将不胜感激。非常感谢。

如果您使用字典对象并检查字典中是否有单词,代码将被简化并按您的意愿工作:

Dim i As Integer
Dim MyDictionary As Dictionary
Dim MyWords(1) As String

Set MyDictionary = New Dictionary
MyDictionary.Add "Lorem ipsum1", "Lorem ipsum1"
MyDictionary.Add "Lorem ipsum2", "Lorem ipsum2"
MyDictionary.Add "Lorem ipsum3", "Lorem ipsum3"
MyWords(0) = "Lorem ipsum2"
MyWords(1) = "Lorem ipsum4"
For i = LBound(MyWords) To UBound(MyWords)
If Not MyDictionary.Exists(MyWords(i)) Then
MsgBox "Words missing from the dictionary"
Exit For
End If
Next

最新更新