VBA宏根据用户输入删除行

时间:2012-07-24 16:41:37

标签: excel vba excel-vba

我正在尝试找到一个宏,它会删除用户指定数字以下的所有行。例如,用户将输入“19”,宏将删除20行及以下的行。我非常感谢你的帮助。

谢谢!

3 个答案:

答案 0 :(得分:3)

试试这个。我使用过ActiveSheet。您可以将其设置为您要使用的任何工作表。

Sub Sample()
    Dim Ret As Long

    Ret = Application.InputBox(Prompt:="Please enter a row number", Type:=1)

    If Ret = False Then Exit Sub

    With ActiveSheet
        .Rows(Ret + 1 & ":" & .Rows.Count).Delete
    End With
End Sub

答案 1 :(得分:0)

您可以输入column = 1和Row = 1您想要保留的行数。 <= p>表示数据在行=删除之前,每行返回行= 2。

Sub Macro1()
'
' Macro1 Macro
'

    deleterowsbefore = ActiveSheet.Cells(1, 1)
    Rows("2:" & deleterowsbefore - 1).Select
    Selection.Delete Shift:=xlUp
End Sub

答案 2 :(得分:-1)

这应该可以解决问题:

Sub UserInput()
    Dim num As Integer
    num = InputBox(Prompt:="Enter the row number.", Title:="Enter Row Number", Default:="Row number")
    If (num < 1) Then
        GoTo Whoops:
    End If
    Dim i As Integer
    i = 1
    Do While i <= num
        Rows(1).EntireRow.Delete
        i = i + 1
    Loop
    GoTo Fin:
    Whoops:
        MsgBox ("You have entered an invalid row number")
    Fin:
End Sub