|
いつも、お世話になっています。
履歴を参照して、下記のようなマクロを作成しました。
やりたいことは、オートフィルタで絞り込んだ結果の最初と最後の行番号の取得です。
Private Sub ComboBox1_Change()
With Worksheets("AAAA")
If .AutoFilterMode Then
.AutoFilterMode = False
End If
LtW = ComboBox1.List(ComboBox1.ListIndex)
.Range("B1").AutoFilter Field:=3, Criteria1:=LtW
CE = .Range("C65536").End(xlUp).Row
CA = .Range("C:C").SpecialCells(xlCellTypeVisible).Areas.Item(2).Row
If CA > CE Then
CA = 2
End If
MsgBox CA & ", " & CE
End With
end sub
Private Sub UserForm_Initialize()
Dim Dic As Object 'Dictionary
Dim RR As Range
Dim R As Range
If Sheets("LIST").Range("F2") = 1 Then
With Sheets("MCSV")
Set Dic = CreateObject("Scripting.Dictionary")
Set RR = .Range("C2")
Set RR = Range(RR, RR.End(xlDown))
For Each R In RR
Dic(R.Value) = Empty
Next
Me.ComboBox1.List = Dic.keys
Set Dic = Nothing
End With
end sub
B列に複数のデータがある場合には動作しますが、1種類のデータしかない場合に,
下記部分でエラーになってしまいます。
CA = .Range("C:C").SpecialCells(xlCellTypeVisible).Areas.Item(2).Row
例
A列 B列 A列 B列
番号 名前 番号 名前
1 AAA 1 AAA
2 BBB 問題ない 2 AAA エラー発生
3 AAA 3 AAA
エラーの回避方法があれば、教えていただけないでしょうか。
よろしくお願い致します。
|
|