Проверьте наличие дубликатов в текстовом поле - PullRequest
0 голосов
/ 03 марта 2020

Я нуб VBA, и я пытаюсь сравнить числа, введенные в поле текстовой формы в слове мс, затем, если дубликат найден, я отображаю окно сообщения.

Проблема, с которой я столкнулся ... Мне нужно сравнить 33 поля и найти дубликаты от 1 до 33. Я получаю сообщение о том, что процедура слишком велика. Я уверен, что должен быть более простой способ сделать это. Это защищенный документ, который я снимаю с защиты, когда пользователь нажимает командную кнопку. Я даже пытался разбить его и назначить макросы для некоторых полей.

Вот пример того, что у меня есть. Есть 33 закладки, и я сравниваю каждое поле.

If (ActiveDocument.FormFields("s1").Result = "1" And _
ActiveDocument.FormFields("s2").Result = "1") Then
MsgBox ("Your preferences cannot be duplicated.")
 Validate = True
    If True Then Exit Sub
  Else
    Validate = False
End If

1 Ответ

0 голосов
/ 04 марта 2020

Возможно:

Sub CompareFormfields()
Dim i As Long, j As Long
With ActiveDocument
  For i = 1 To .FormFields.Count - 1
    For j = i + 1 To .FormFields.Count
      If (.FormFields(i).Type = wdFieldFormTextInput) And (.FormFields(i).Type = wdFieldFormTextInput) Then
        If .FormFields(i).Result = .FormFields(j).Result Then
          MsgBox "The data in FormField " & i & " is duplicated in FormField " & j
        End If
      End If
    Next
  Next
End With
MsgBox "Done checking"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...