数据输入表上的强制性现场检查

时间:2019-01-10 01:38:15

标签: excel vba

我在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 :(得分:0)

所以谜团解决了,我错过了一个隐藏的帮助专栏,

  Set myTest = myCopy.Offset(0, 1)

行应已引用,偏移量应为(0,2),并且在E列中需要以下公式:

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

如果在D列中未将标记为D的单元格填充为C,则将其置为1,这说明了为什么此行;

If Application.Count(myTest) > 0 Then 

寻找一个大于0的数字。

谢谢那些提出建议的人!