Excel VBA循环模块表超出范围?

时间:2017-07-26 20:21:52

标签: excel vba excel-vba

我遇到运行时错误1004"选择Range类的方法失败"在我在模块中运行的脚本上。该脚本与另一个工作表上的按钮相关联。运行时,该脚本用于查看工作表的第N列"项目概述,"找到任何包含值的行"完成 - 设计"并将该行的值复制到sheet3上的临时保留行。从那时起,该行被添加到第三张也是最后一张(sheet9),在那里它被插入到已经复制的其他行的运行列表中。 "项目概述中的原始行"然后删除工作表。

当脚本到达Sheet3.Range时,我收到错误(" A200:Q200")。选择部分代码。我觉得它与激活此模块中的工作表有关,因为脚本的其余部分包含在一个目标项目概述表的with语句中,但我不知道如何解决该冲突。任何帮助,将不胜感激。谢谢!

Sub CompleteJob()

Dim Firstrow As Long
    Dim lastRow As Long
    Dim LrowProjectsOverview As Long

    With Sheets("Projects Overview")
        .Select

        Firstrow = .UsedRange.Cells(1).Row
        lastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
        For LrowProjectsOverview = lastRow To Firstrow Step -1
            With .Cells(LrowProjectsOverview, "N")
                If Not IsError(.Value) Then
                    If .Value = "Complete - Design" Then .EntireRow.Copy

                    Sheet3.Range("A200:Q200").Select

                    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False


                        If Sheet9.Range("B2").Value = "" Then
                            Sheet9.Range("A2:Q2").Value = Sheet3.Range("A200:Q200").Value
                            Sheet3.Range("A200:Q200").ClearContents

                            Else

                            Sheet9.Range("B2").EntireRow.Insert
                            Sheet9.Range("A2:Q2").Value = Sheet3.Range("A200:Q200").Value
                            Sheet3.Range("A200:Q200").ClearContents
                            Sheet9.Range("B2:Q2").Interior.Color = xlNone
                            Sheet9.Range("B2:Q2").Font.Bold = False
                            Sheet9.Range("B2:Q2").Font.Color = vbBlack
                            Sheet9.Range("B2:Q2").RowHeight = 14.25

                        End If

                        If Sheet9.Range("B2").Value = "" Then
                           Sheet9.Range("B2").EntireRow.Delete

                        End If

                    If .Value = "Complete - Design" Then .EntireRow.Delete

                End If
            End With
        Next LrowProjectsOverview
    End With

End Sub

0 个答案:

没有答案