所以我正在制作一个相当简单的宏,将新记录添加到列表中。当字段为空时,我试图阻止它工作,所以我已经检查输入字段是否为空。但是,我似乎无法让它发挥作用。
以下是代码:
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
答案 0 :(得分:1)
这是编写上述内容的另一种方式。有关如何设置的更多信息,我可以编辑和修改它。此外,您的itemPrice应该是double,而不是Integer。
这是基于您的原始代码。但仔细研究它。我不确定您的ID列是如何与名称相同的列?我在下面的解决方案中修复了它,但您必须在屏幕截图中看到工作表的布局。
在此示例中,您输入B2中的名称和C2中的价格。你可以修改它。我的大脑只需要这样写。
<强>试验:强>
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
编辑:使用工作代码更新了解决方案。