0

目標: 1 つの列のセル条件に基づいて複数の行を削除できるマクロを探していますが、コードに設定値を含めるのではなく、マクロを実行するたびに値を要求したいと考えています。これまでにオンラインで見つけた各コードは、機能しないか、1 つの値に対してのみコード化されています。

エクセル2003を使用しています

これが私の目的のために機能することがわかった1つのコードです..しかし、同じ番号を何度も使用するのではなく、ユーザーに特定の番号を入力するように促すように編集したいと思います。

      Sub Delete_Rows()
            Dim rng As Range, cell As Range, del As Range
            Set rng = Intersect(Range("A2:J707"), ActiveSheet.UsedRange)
            For Each cell In rng
            If (cell.Value) = "201" _
            Then
            If del Is Nothing Then
            Set del = cell
            Else: Set del = Union(del, cell)
            End If
            End If
            Next cell
            On Error Resume Next
            del.EntireRow.Delete
        End Sub
4

2 に答える 2

0

InputBox 関数を確認する必要があります

基本的に、ダイアログ ボックスにプロンプ​​トを表示し、ユーザーがテキストを入力するかボタンをクリックするのを待ってから、テキスト ボックスの内容を含む文字列を返します。

したがって、コードの場合、次のようになります。

 Sub Delete_Rows()
    Dim selectedValue As Integer
    selectedValue = InputBox ("Please, enter a number", "Input for deleting row", Type:=1)
                              'Prompt                   'Title                  'Value type (number here)
    Dim rng As Range, cell As Range, del As Range
    Set rng = Intersect(Range("A2:J707"), ActiveSheet.UsedRange)
    For Each cell In rng
    If (cell.Value) = selectedValue _
    Then
    If del Is Nothing Then
    Set del = cell
    Else: Set del = Union(del, cell)
    End If
    End If
    Next cell
    On Error Resume Next
    del.EntireRow.Delete
End Sub
于 2013-05-16T18:02:20.963 に答える