Обязательная проверка поля на листе ввода данных - PullRequest
0 голосов
/ 10 января 2019

У меня есть лист ввода данных в Excel, который состоит из 3 столбцов: заголовок поля (например, имя, номер детали и т. Д.) (Столбец B), поле ввода данных (столбец C) и поле галочки, которое отмечает обязательное поле (столбец D). Когда я изначально включил код в свою книгу, он работал правильно. Теперь это не работает, единственное изменение, которое я могу придумать, это повлияет на количество строк ввода данных.

Я уже прошел отладку, и переменные, кажется, получают правильные данные. В этом разделе кода рассматриваются обязательные поля.

Else

  'cells to copy from Input sheet - some contain formulas
  Set myCopy = inputWks.Range("EntryData")

  lRec = inputWks.Range("CurrRec").Value
  lRecRow = lRec + 2

  With inputWks
      Set myTest = myCopy.Offset(0, 1)

      If Application.Count(myTest) > 0 Then
          MsgBox "Please fill in all the cells!"
          Exit Sub
      End If
  End With

Остальная часть оператора If / Else работает правильно, однако, похоже, что код не проверяется на соответствие столбцу обязательного поля.

«EntryData» - это именованный диапазон, который включает все данные из столбца C (столбец ввода данных)

1 Ответ

0 голосов
/ 10 января 2019

Итак, тайна раскрыта, я пропустил скрытый столбец помощника, который

  Set myTest = myCopy.Offset(0, 1)

строка должна была ссылаться, смещение должно было быть (0, 2), а в столбце E требовалась следующая формула:

 =IF(E5="","",IF(D5="",1,"")) 

Который выставляет 1, если ячейка, помеченная как обязательная в столбце D, не заполнена в столбце C, что объясняет, почему эта строка;

If Application.Count(myTest) > 0 Then 

ищет число больше 0.

Спасибо тем, кто прокомментировал совет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...