私は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
これは数回繰り返されますが、スペースを節約するために、ここにはすべてを含めていません。ProdCodeListBox1 の検証を追加するまで、最後の 2 つの if ステートメントは機能していたと言えば十分でしょう。
どんな助けでも大歓迎です!たとえそれが単純なものであっても、私は見落としています。
ありがとう!