エクセルVBAについて質問です。 コードを教えていただけたら幸いです。

エクセルVBAについて質問です。 コードを教えていただけたら幸いです。 ---前提として--- ・1シート目の"検索シート"のB7セルに西暦(年)と月が合わさった数値を入力するセルがあります。 例)2020年8月→202008 ・"検索シート"のB8セルには記入者の名前 例)田中 ・"検索シート"のB9セルには日付 例)8 ・また他のシート(3シート目~)には"202008"~"202203"までの1か月ごとのシートが複数ある状態です。 これらのシートの 横方向にはE5セル→1 F5セル→2のように日付が入っています。 縦方向にはD7セル→田中 D8セル→佐藤のように記入者の名前一覧になっております。 ------ ①vbaで"検索シート"の【B7セル】から該当するシートを検索しアクティブにする方法。 ②上記で該当シートをアクティブにした後でクロス抽出のような方法を使い、"検索シート"の【D7セル(名前)】と【B9セル(日付)】を参考に交差する対象セルを選択して黄色にする方法(vba) よろしくお願いします。

Visual Basic | Excel37閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

0

先行回答者がおりますが、参考にしてください。 Sub test() Dim y, n, D Dim fnd As Range Dim c, R As Long Dim ret As Variant With Worksheets("検索シート") y = .Range("B7").Value '年月 n = .Range("B8").Value '氏名 D = .Range("B9").Value '日 End With Worksheets(CStr(y)).Select '数値を文字列に変換して開く With Worksheets(CStr(y)) Set fnd = .Range("D:D").Find(n, LookAt:=xlWhole) '検索 R = fnd.Row ret = Application.Match(D, .Range("E5:AI5"), 0) c = ret + 4 .Cells(R, c).Interior.ColorIndex = 6 End With End Sub

ThanksImg質問者からのお礼コメント

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

お礼日時:8/4 16:48

その他の回答(1件)

0

Dim WS As Worksheet, R, LastRow, D Set WS = Worksheets(Range("B7").Text) WS.Activate LastRow = WS.Cells(Rows.Count, 4).End(xlUp).Row For R = 7 To LastRow If WS.Cells(R, 4) = Range("B8") Then D = Range("B9") WS.Cells(R, D + 4).Interior.Color = vbYellow Exit For End If Next R

ご返信ありがとうございます。 対象シートの検索ができました。 ただそのシート内での"検索シート"のB8、B9を参考にした交差する箇所が選択されない状態です。 名前の最終行が黄色になってしまうのですがどうしたら良いでしょうか...