|
ご回答いただき大変ありがとうございます。
恐縮ながら自己解決してしまいました。。。
そしてご回答内容について、
もし宜しければ操作手順を教えていただけないでしょうか?
逆に初心者の私にはこちらがわかりませんでした。お手数をおかけしましてすみません。
▼通り過ごせない さん:
>マクロ記録はできますか?
>オートフィルタ の オプションで
>4以上 かつ 6以下
>という条件を記録させてみては?
ちなみに下記のようにプログラムを修正しましたところ、質問内容に合致しました。
シート:Sheet1
データ範囲:1行A列〜RowNum行A列 (RowNumは行数をカウント後、下端の行番号が入ります。)
検索範囲:入力した値の上下20%
Private Sub CommandButtonSEARCH_Click() '検索ボタンクリック
Call myFilter(1, textbox1.Value)
End Sub
myFilterの内容
↓
Private Sub myFilter(tmpF As Integer, tmp1 As Variant) 'オートフィルタを設定 tmpFはフィルタかける列番号
Dim width1 As Variant '下限値
Dim width2 As Variant '上限値
Dim RowNum As Integer 'RowNum宣言
RowNum = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "E").End(xlUp).Row 'RowNum定義
With Sheets("Sheet1")
If Trim(tmp1) <> "" Then
width1 = tmp1 * 0.8 '下端の数値を設定、入力値の80%
width2 = tmp1 * 1.2 '上端の数値を設定、入力値の120%
.Range(.Cells(1, "A"), .Cells(RowNum,"A")).AutoFilter Field:=tmpF, Criteria1:=">=" & width1, Operator:=xlAnd, Criteria2:="<=" & width2
End If
End With
End Sub
|
|