|
jakaさん、フォローをどうも。
コード全体を見直して、こんなふうにしてみました。
整数でも文字でも検索できます。検索範囲は前にUPしたコードと同じです。
また、並べ替えのとき、行番号の順番になるように数式を修正しています。
Sub Del_GetRow()
Dim MyV As Variant
Const Pmt As String = _
"文字または整数で検索値を入力して下さい"
With Application
MyV = .InputBox(Pmt, Type:=3)
If VarType(MyV) = 11 Then Exit Sub
.ScreenUpdating = False
End With
With Range("A1", Range("A65536").End(xlUp)).Offset(, 6)
Select Case VarType(MyV)
Case 2, 3, 5, 6
.Formula = "=IF(ISNA(MATCH(" & CLng(MyV) & _
",$A1:$F1,0)),""a"",ROW())"
Case 8
.Formula = "=IF(ISNA(MATCH(" & """" & MyV & """" & _
",$A1:$F1,0)),""a"",ROW())"
Case Else
MsgBox VarType(MyV) & vbLf & _
"文字、整数以外の検索はできません", 48: GoTo ELine
End Select
.Copy
.PasteSpecial xlPasteValues
.CurrentRegion.Sort Key1:=Columns(7), Order1:=xlAscending, _
Header:=xlGuess, Orientation:=xlSortColumns
If WorksheetFunction.Count(.Cells) < .Count Then
.SpecialCells(2, 2).EntireRow.ClearContents
End If
.ClearContents
End With
ELine:
Range("A1").Select
With Application
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub
|
|