(コメントでこの問題の解決策である、あなたにロンに感謝)
ちょうど私が私が試したものの、このタスクへの答えを見つけることができなかった原因を申し込みました気にせずにやるのは本当に難しいです。ダイナミックTarget.AdressエクセルVBA
私は、値を変更するたびに特定のセルでVLookUpを作成しようとしています。 "Worksheet_Change"を使用してExcelを作成するようExcelに依頼するまで、セルは存在しません。
ワークシートは、私が選択するフィールドを追加して編集します。
例えば、私は3つのプロセス変数を入れる必要があるので、最初の行( "$ R $ 30")の隣に "3"を入力します。この変更を行うことで、Excelは2行を追加します(最初のプログラムされた部分の最後に、既にそこにあった最初のものを取得し、必要な3行を完成するために2つ以上を追加します)。
"プロセスセル"( "$ R $ ...")の情報を使用して、この定義済みのプロセス定義を "検証データ"リスト(すでに実行され、正常に動作しています)その隣に定義コードを自動的に追加する必要があります。
例えば、検証データから "Flow Calibration"を選択すると、その横に "XD61DD"が表示されます。
最初の行については、うまくいきます...追加されたすべての行に対して機能させることはできません。 (私は学んだ、私にあまりにもハード、それを服用しないでください、私はそれは石器時代のコーディングのようなことを知っている:P)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cant As Integer
Dim RowNumber As Integer
If Target.Address = "$AG$30" Then
If Range("$AG$30") <> "" Then
cant = Range("$AG$30")
For i = 1 To cant - 1
Var = 30 + i
Range("A" & Var).Select
RowNumber = ActiveCell.Row
Rows(RowNumber).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
rango1 = "L" & RowNumber & ":" & "Q" & RowNumber
rango2 = "R" & RowNumber & ":" & "AF" & RowNumber
Range(rango1).Select
Selection.Merge True
Range(rango2).Select
Selection.Merge True
rango3 = "AG" & RowNumber
Range(rango3).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Next i
End If
End If
ここ
は、私が取り組んできたコードですここまで
それは、最初の部分は参照用で、正常に動作しますが、:
Range("R30").Select
If Target.Address = "$R$30" Then
If Range("$R$30") <> "" Then
Range("$L$30") = Application.VLookup(Range("$R$30"), Range("$BG$3:$BH$9"), 2, False)
End If
If Range("$R$30") = "" Then
Range("$L$30") = ""
End If
End If
End Sub
それがうまく働いたが、私は「$に同じ命令を実行する必要がありましたがありますので、私は「$ R $ 30」左R $ 31 "となり、行が作成されたときにそのようになります。
私が本当に助けてくれることを願っています。
ありがとうございます。 R1000:
AGUS
私はこれを試しました...それはうまくいきませんでした... "タイプミスマッチ"が "ターゲット"> "それで_"で... 「イベントを無効にする」が動作する場所を確認してください。 –
「Target」が1つのセル以上の場合に起こります。言い換えれば、選択が複数のセルである場合ソリューションのための私の編集を参照してください。 –
イベントハンドラの実行中にイベントを無効にする理由は、イベントハンドラの実行中にイベントハンドラがトリガされないようにするためです。これは無限ループにつながります。デバッグを停止すると、イベントハンドラが再度有効にならないため、デバッグの際に注意する必要があります。手動で行う必要があります。 –