Excel-VBA根据当月

时间:2018-06-14 16:42:01

标签: excel vba excel-vba rows

我正在尝试创建一个宏,根据当前月份动态删除一系列行。

要删除的第一行包含当前月份的名称。 FindRow尝试查找该行,然后FindRowNumber尝试存储该行号。

要删除的最后一行是行总是323.当我尝试运行此宏时,我总是得到运行时错误91.我不确定我做错了什么因为我是VBA的新手。

此代码的相关工作表始终是工作簿中的第一个工作表。

Sub Delete_Rows()
    Dim Curr_Month As String
    Dim FindRow As Range
    Dim FindRowNumber As Long

    Curr_Month = MonthName(Month(Now()), False)

With ActiveWorkbook.Worksheets(1)
     Set FindRow = .Range("A:A").Find(What:=Curr_Month, LookIn:=xlValues)
End With

Set FindRowNumber = FindRow.Row

Rows(FindRowNumber & ":323").EntireRow.Delete

End Sub

1 个答案:

答案 0 :(得分:0)

BigBen已经确定了它,但也值得检查一下你找到了搜索词,以避免另一个错误,并且被删除的行位于正确的工作表上(注意额外的点)。

Sub Delete_Rows()

Dim Curr_Month As String
Dim FindRow As Range
Dim FindRowNumber As Long

Curr_Month = MonthName(Month(Now()), False)

With ActiveWorkbook.Worksheets(1)
    Set FindRow = .Range("A:A").Find(What:=Curr_Month, LookIn:=xlValues)
    If Not FindRow Is Nothing Then
        FindRowNumber = FindRow.Row
        .Rows(FindRowNumber & ":323").Delete
    End If
End With

End Sub