入力値に基づいて、テーブル内のセルを検索し、その行番号を変数に格納します。この変数は、次の列の対応する値に入力番号を掛けるために使用されます。これまでの私のコード:一致する値の行番号を見つけ、変数に格納する
Option Explicit
Sub Calculate()
Dim var As Variant
Dim rownumber As Integer
Dim Mx As Variant
Dim Nx As Variant
Dim Ox As Variant
Dim Px As Variant
Dim Qx As Variant
Dim Rx As Variant
Dim low As Variant
Dim cat As Variant
rownumber = WorksheetFunction.Match(Sheets("User Interface").Range("K27").Value, Sheets("C-type").Range("L5:L345"), 0)
Mx = Sheets("User Interface").Range("K27").Value * Sheets("C-type").Range("M" & rownumber).Value
Nx = Sheets("User Interface").Range("K27").Value * Sheets("C-type").Range("N" & rownumber).Value
Ox = Sheets("User Interface").Range("K27").Value * Sheets("C-type").Range("O" & rownumber).Value
Px = Sheets("User Interface").Range("K27").Value * Sheets("C-type").Range("P" & rownumber).Value
Qx = Sheets("User Interface").Range("K27").Value * Sheets("C-type").Range("Q" & rownumber).Value
Rx = Sheets("User Interface").Range("K27").Value * Sheets("C-type").Range("R" & rownumber).Value
cat = Array(Mx, Nx, Ox, Px, Qx, Rx)
low = Application.WorksheetFunction.Min(cat)
Sheets("User Interface").Range("C45").Value = low
Sheets("User Interface").Range("c45").Activate
Application.Goto ActiveCell.EntireRow, True
End Sub
問題は、私は、このように私は、これはそれについて移動するための正しい方法であることを疑うし始めている、私のマッチ機能の範囲エラーのうち添字得るということです。私はどうにかテーブル内の一致する番号の行番号を参照できるようにする必要があります、任意の提案は高く評価されるだろう。
う '.Find()'関数の作業を試してみてください? Range( "K27")。値、LookIn:= xlValues、LookAt( "User Interface")のようなものです。 := xlWhole).Row'おそらく? – Tyeler
また、何らかのエラーキャッチを試みることもできます。一致がないか、一致が#N/Aであるため、エラー9が発生している可能性があります。 'Application.Match'を使って試してみましょう。If IsError(rownumber)= FalseならばあなたのコードElse MsgBox("値が見つかりません ")End If'。 'WorksheetFunction.MATCH'が値を見つけることができないと、それはランタイムエラー9を投げます。' Application.MATCH'もエラーをスローしますが、あなたがトラップできる 'rownumber'にエラーが割り当てられます。 – Tyeler