前提
マクロが有効なエクセルブックで、データを取り扱っています。
VBAコードはSheet1に記入しています。
実現したいこと
- Sheet1に存在する数値Aと、値が完全一致するセルをSheet2の2番目のRow(A~ZZ)から探す(Column番号が分かればOK)
- Findメソッドを使うと時間がかかるのでMatchメソッドを使用したい
- 数値AはSheet1のセルの値を&でつなげたもの。コードではShikibetsuNoという変数に格納している。
発生している問題・エラーメッセージ
明らかに数値Aに一致するセルがあるにも関わらず、Worksheet.Matchで値を得ることができない(おそらくN/Aになっている)
下のコードでいうと「値がありません」というメッセージコードが表示される
該当のソースコード
※前提
Sheet1に書いているVBAです
Sheet1のセル情報
Cells(1, 4)=1
Cells(4, 4)=1
Cells(6, 4)=130
Cells(7, 4)=2
Sheet2のセル情報
B2=111301
C2=111302
今回はC2の位置を取得したい
vbaSub
1※ShikibetsuNo とは数値Aのこと 2Dim ShikibetsuNo As Variant 3 ShikibetsuNo = Cells(1, 4).Value & Cells(4, 4).Value & Cells(6, 4).Value & Cells(7, 4).Value 4Dim Var As Variant 5 Var = 0 6 7On Error Resume Next 8 Var4 = WorksheetFunction.Match(ShikibetsuNo, Worksheets("Sheet2").Range("A2:ZZ2"), 0) 9On Error GoTo 0 10 11 If Var4 = 0 Then 12 MsgBox "値がありません" 13 Else 14 (その後の処理)
試したこと
・Application.Matchを使う→特に変化なし(この際エラーのところはIf IsError(Var) Thenとかで書き直しました)
・matchの検索範囲を狭める→ダメでした
補足情報(FW/ツールのバージョンなど)
エクセル バージョン2016

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/11 02:35