我是 vba 新手,只使用了几个月。我基本上一直在学习。尽管如此,我正在尝试编写一些代码来处理各种功能。我编写了下面的代码,它是从用户窗体上的命令按钮启动的。该代码基本上应该在 Excel 工作表中搜索一行并验证几条信息,然后采取行动。如果代码无法验证行中的条目与用户表单中的条目之间的匹配,它会停止并显示错误消息。如果它可以验证信息匹配,它应该继续在该行上填充一些信息。我意识到我编写的这段代码可能完全是笨拙的,而且绝对不优雅,但是在我为产品代码添加验证之前它一直在工作。请,有人可以帮忙吗?我看了又看,找不到解决办法。
这是代码:
Private Sub AddDelivButton_Click()
Sheets("Deliveries").Activate
Dim number As Integer, rownumber As Integer, result As Long, i As Integer
number = POTextBox.Value
rownumber = 0
result = 1000000
For i = 1 To 25000
If Cells(i, 1).Value = number Then
result = Cells(i, 1).Value
rownumber = i
End If
Next i
If result = 1000000 Then
MsgBox "PO Number Not Found"
Sheets("Dashboard").Activate
Exit Sub
Else
Cells(rownumber, 1).Select
ActiveCell.EntireRow.Cells(3).Select
If ActiveCell.Value <> ProdCodeListBox1.Value Then
ActiveCell.EntireRow.Cells(5).Select
If ActiveCell.Value <> ProdCodeListBox1.Value Then
ActiveCell.EntireRow.Cells(7).Select
If ActiveCell.Value <> ProdCodeListBox1.Value Then
MsgBox "Product Code Not Found"
Sheets("Dashboard").Activate
Exit Sub
Else
ActiveCell.EntireRow.Cells(10).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ProdCodeListBox1.Value
ActiveCell.EntireRow.Cells(11).Value = WeightTextBox1.Value
ActiveCell.EntireRow.Cells(12).Value = DateTextBox1.Value
Else
ActiveCell.EntireRow.Cells(13).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ProdCodeListBox1.Value
ActiveCell.EntireRow.Cells(14).Value = WeightTextBox1.Value
ActiveCell.EntireRow.Cells(15).Value = DateTextBox1.Value
Else
这持续了几次迭代,为了节省空间,我没有把它们都包括在这里。只需说最后两个 if 语句一直有效,直到我添加了 ProdCodeListBox1 的验证。
任何帮助将不胜感激!即使这很简单,我也忽略了。
谢谢!