2

前のセルの値に基づいて多くのセルの値を更新する VBA コードがあります。現時点では、1行の情報に対して機能させることができます。ただし、複数の行で機能するようにしたいと思います。私はコードを書いてコピーして貼り付けてきたので、一貫性が欠けている可能性が高い.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rwIndex As Integer
For rwIndex = 4 To 400
If Target.Address = Cells(rwIndex, 3) Then

    If Range(Target.Address).Value = "Intrinsic" Then
        Dim LYVMessage
        LYVMessage = "Enter Last Year's Value"
        Cells(rwIndex, 5).Value = InputBox(LYVMessage)
    Else
        Cells(rwIndex, 5).Value = "NA"
        Cells(rwIndex, 6).Value = "NA"
        Cells(rwIndex, 9).Value = "NA"
        Cells(rwIndex, 10).Value = "NA"
        Cells(rwIndex, 11).Value = "NA"
        Cells(rwIndex, 12).Value = "NA"
        Cells(rwIndex, 7).Value = "NA"
        Cells(rwIndex, 8).Value = "NA"
        QMessage = "Enter whether Quantity is a Fixed Variable (1) or Random Variable (Logistic or Triangular)"
        Cells(rwIndex, 13).Value = InputBox(QMessage)
        PMessage = "Either Enter a Fixed Value for Price, or Enter Whether it is a Random Variable (Logistic or Triangular)"
        Cells(rwIndex, 14).Value = InputBox(PMessage)
    End If
End If
Next rwIndex
End Sub

ターゲット セルを更新すると、「コンパイル エラー: サブまたは関数が定義されていません」というエラーが表示されます。

誰が何が起こっているのか教えてもらえますか?

4

2 に答える 2

0

コードの 4 行目では、ターゲット セル (文字列) のアドレスをセル (範囲) と比較しています。

これの代わりに:

If Target.Address = Cells(rwIndex, 3) Then

あなたはこれを試してみるべきです

If Target.Address = Cells(rwIndex, 3).Address Then

うまくいくことを願っています!!!

于 2013-07-04T06:28:17.357 に答える