• ベストアンサー

VBA

一つ人一つのセルの値を上から順番に比較していき、マッチしたらそのマッチしたセルの行の値を拾ってnの関数に格納する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

>セルの縦列に色々な値が入っています これが1枚目のシートの1列目(A列)という条件なら かつ、 途中に空白のセルが無い条件なら、 こんなコードでいかがでしょうか。 Option Explicit Sub Sample()  Dim RowCounter As Long  Dim TGSheet As Worksheet  Dim HitFlg As Boolean  Dim rcData As String    rcData = InputBox("データ入力")    Set TGSheet = ThisWorkbook.Sheets(1)  HitFlg = False  RowCounter = 1  If rcData = "" Then Exit Sub  Do   If TGSheet.Cells(RowCounter, 1).Value = "" Then Exit Do   If TGSheet.Cells(RowCounter, 1).Value = rcData Then    HitFlg = True    MsgBox "ヒットしました:" & rcData & " /行番号:" & Format(RowCounter, "0")    Exit Sub   End If   RowCounter = RowCounter + 1  Loop    If HitFlg = False Then   MsgBox "ヒットしません:" & rcData  End If End Sub

homma
質問者

お礼

ありがとうございました。 解決しました。

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8536/18274)
回答No.1

一つ人一つの...ひとつひとつのということだろうと推測できる。 セルの値を上から順番に比較していき、マッチしたら...事前に比較対象の値が与えられていると仮定できる。 そのマッチしたセルの行の値...行番号のこと?それともマッチした行の他の列の値のこと? を拾ってnの関数に格納する方法...nの関数というのが意味不明です。 もう少し他人にわかるように書いてください。

homma
質問者

補足

失礼いたしました。 質問を整理します。 セルの縦列に色々な値が入っています。 最初にインプットボックスに任意の値をいれて その値を上記のセルの上から順に比較をしていきます。 比較してインプットボックスの値と順番に読み込んだ値がマッチしたときのセルの縦の値をひろうということが目的です。 宜しくお願いいたします。

関連するQ&A

専門家に質問してみよう