|
こんばんわ
度々お世話になって感謝してます。
今回は以下のことをお願いいたします。
フォームのテキストボックスへ月名を入れて、Sheet1のA2から下の日付データの該当する一番上の行と、一番下の行を取得するため、下の様にしてみましたがこれで問題は無いでしょうか?
最初、上の行はFind関数で、下の行はMACTHワークシート関数でと思ったのですが、どうもMatch関数がうまく行きません。
12月の下に1月が続くとうまく行きませんでした。
1行目は項目行
A2から下へ7月から1年分の日付が入ります。
仮にB列へA列の月名だけを =MONTH(A2) 以下で月名だけ取り出しておく方法をこの掲示板で拝見しましたので利用させて頂いてます。
Sub Test()
Dim myM As String
Dim firstRow As Long, lastRow As Long
Dim f1 As Range, f2 As Range
myM = Range("C1").Value 'テキストボックスの代わり
Set f1 = Sheets("Sheet1").Columns("b").Find(myM, LookIn:=xlValues, LookAt:=xlWhole)
If Not (f1 Is Nothing) Then
firstRow = f1.Row
Set f2 = Worksheets("Sheet1").Columns("b").FindPrevious(after:=f1)
lastRow = f2.Row
End If
MsgBox "上側の行: " & firstRow & "下側の行" & lastRow
Set fc1 = Nothing
Set fc2 = Nothing
End Sub
検索した行が0の場合は別に処理します。
また、もう少し簡単な方法があれば教えていただけませんか?
|
|