|
▼チューリップ さん:
余計なお世話かもしれませんが、
そのプロシージャ、全文はこんな風に書けると思います。
Sub 品書き換え()
Dim msg1 As String
Dim msg2 As String
With Worksheets("sheet1")
If .FilterMode Then
.AutoFilterMode = False
End If
msg1 = InputBox("修正したい果物を入力してください" _
& vbCr & "先頭の文字のみ入力でかまいません", _
"果物の検索", , 100, 100)
If StrPtr(msg1) = 0& Then Exit Sub
''AutoFilter.Rangeは明示的に指定しましょう
([A2].Select のような Excelの自動範囲検索機能に頼らない)
With .Range("A2").CurrentRegion
.AutoFilter Field:=2, Criteria1:=msg1 & "*"
If .Columns(1).SpecialCells(xlVisible).Count < 2 Then
MsgBox "該当するものがありません" _
& vbCr & "再度検索してください", , "データ"
Else
msg2 = InputBox("修正後の果物を入力してください" _
& vbCr & "例)いちご", "果物の修正", , 100, 100)
If StrPtr(msg2) = 0& Then Exit Sub
Intersect(.Columns(2), .Offset(1)).Value = msg2
End If
.AutoFilter
End With
End With
End Sub
|
|