范围

时间:2018-05-29 13:57:21

标签: excel vba excel-vba runtime-error

我正在测试一个命令按钮,在excel 2007中对内部库存请购单(“TestOrder”)运行三次检查。如果基本前提是库存零件(货物)清单,则用户可以输入数量item / s的要求,并指定货物用户的客户代码。如果任何必填字段为空,则会显示一条消息,程序将停止。

他们必须从一个专用小区(D2)的下拉列表中作为申请者输入其首字母,并选择将从专用小区(F2)中的另一个下拉列表处理请求的用户的首字母。数量将输入到L列的相应行中,客户代码将输入M列的同一行。然后,将对该表进行过滤并通过电子邮件进行处理。

我主要得到了所有这些工作,但是由于时间限制,我无法确定在过滤后的订单被发送到任何地方之前已经输入了所需的所有数据。< / p>

我需要检查三件事:

  • 步骤1,输入两组首字母
  • 步骤2,如果已输入数量,则客户字段不能为空
  • 步骤3,如果已输入客户,则数量字段不能为空。

因此,所有三个步骤都必须在其单元格中包含数据。

我已经让步骤1工作,因为专用单元格D2和F2不会更改,如果任一单元格为空白,则会向用户显示一条消息并停止该过程。

而L列中所需的数量和M列中的客户代码是可变的,并且可以使用过滤器来删除空白并仅显示已订购的内容。

所以,我最初在单个列(M-customer代码)上进行测试,以检查范围内的非空单元格数是否小于范围内的单元格总数,这是运行时间发生错误424。 在线

Set myCellRange = Range("M7:M" & Range("M" & Rows.Count).End(xlUp).Row).Select

其中M7是该列中所列数据的顶部单元格。

我的进展代码是:

Sub btn_test_checkdata()
' On the click of this button run a check to see if two cells have the required data, in this case they would be Users Initials selected from a drop down list cell'

If [D2].Value = "" Then
MsgBox "There MUST be Initials selected in the Who is ordering Field", vbOKOnly, "Entry Reqd"
[D2].Select
Cancel = True
Exit Sub
End If

If [F2].Value = "" Then
MsgBox "There MUST be Initials selected in the Who is the Req'n being sent to Field", vbOKOnly, "Entry Reqd"
[F2].Select
Cancel = True
Exit Sub
End If

'Sub checkIfAnyCellInRangeIsEmpty()
'declare object variable to hold reference to cell range you work with

Dim myCellRange As Range

'identify cell range you work with
Set myCellRange = Range("M7:M" & Range("M" & Rows.Count).End(xlUp).Row).Select

'check if number of non-empty cells in range is less than total number of cells in range. Depending on result, display message box indicating whether cell range contains any empty cell (True) or not (False)

If WorksheetFunction.CountA(myCellRange) < myCellRange.Count Then
   MsgBox myCellRange.Address & " contains at least 1 empty cell"

End If
End Sub

显然,我需要将这个检查扩展到两个列,所以任何关于它的提示都会很好,因为我不是专家用户,我的想法是让我让代码为一列工作然后为另一列重复

我现在得到的当前错误,是否与指定工作表有关?因为我无法看到我在任何地方这样做。

就像我说的那样,我的主要操作工作在订单表中,这是关于我建立一个小程序,以便在发生任何其他事情之前进行最终检查。

0 个答案:

没有答案