testingVBAmacros中的空字段

所以我正在做一个相当简单的macros,为列表添加一条新logging。 我试图保持它的工作时,空白字段,所以我已经实施了检查input字段是否为空。 但是,我似乎无法得到它的工作。

代码如下:

Sub AddRecord_Click() Dim itemName As String Dim itemPrice As Integer Dim nextRow As Integer Dim idNumber As Integer nextRow = Sheets("REVENUES").Range("B" & Rows.Count).End(xlUp).Row + 1 itemName = Range("A2").Value itemPrice = Range("B2").Value idNumber = (Range("A" & (nextRow - 1)).Value) + 1 If Range("A2").Value <> "" And Range("B2").Value <> "" Then Range("A" & nextRow).Value = idNumber Range("B" & nextRow).Value = itemName Range("C" & nextRow).Value = itemPrice Range("D" & nextRow).Value = Date Range("A2").Value = "" Range("B2").Value = "" End If End Sub 

这是写上面的东西的另一种方式。 随着更多关于如何设置的信息,我可以编辑和修改这个。 另外,你的itemPrice应该是一个double,而不是一个Integer。

这是基于你的原始代码。 但是看更深入。 我不知道你是如何将ID列与名称相同的列? 我在下面的解决scheme中解决了这个问题,但是您必须在屏幕截图中查看工作表的布局。

在本例中,您inputB2中的名称和C2中的价格。 你可以修改它。 我的大脑不得不这样写。

testing:

 Sub AddRecord_Click() Dim itemName As String Dim itemPrice As Double Dim nextRow As Long Dim idNumber As Integer nextRow = Sheets("REVENUES").Range("B" & Rows.Count).End(xlUp).Row + 1 If Sheets("REVENUES").Range("C2").Value = "" Or Sheets("REVENUES").Range("B2").Value = "" Then MsgBox ("Please Complete Input Cells") Else itemName = Sheets("REVENUES").Range("B2").Value itemPrice = CDbl(Sheets("REVENUES").Range("C2").Value) idNumber = (Sheets("REVENUES").Range("A" & (nextRow - 1)).Value) + 1 Sheets("REVENUES").Cells(nextRow, 1).Value = idNumber Sheets("REVENUES").Cells(nextRow, 2).Value = itemName Sheets("REVENUES").Cells(nextRow, 3).Value = itemPrice Sheets("REVENUES").Cells(nextRow, 4).Value = Now Sheets("REVENUES").Range("B2").Value = "" Sheets("REVENUES").Range("C2").Value = "" End If End Sub 

消息框

编辑:更新解决scheme与工作代码。