0

私は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 ステートメントは機能していたと言えば十分でしょう。

どんな助けでも大歓迎です!たとえそれが単純なものであっても、私は見落としています。

ありがとう!

4

1 に答える 1