Excel VBA嵌套循环问题

时间:2016-05-04 13:29:12

标签: excel vba excel-vba

真的希望有人可以帮助我。

我是VBA的新手,几个星期前才开始挑选。我正在尝试创建一个嵌套循环来合并来自Excel中多个选项卡的数据。

这基于工作表名称开头“>”和第3列包含True或False值。然后将数据粘贴到名为import的工作表中。

两个循环似乎都独立工作,但我不能让它们一起工作。

提前致谢。

Sub TestImport()
Dim WS As Worksheet
Dim Criteria As Boolean
Dim C As Integer
Criteria = True
Application.ScreenUpdating = False
Sheets("Import").UsedRange.Offset(1).Clear
For Each WS In ThisWorkbook.Worksheets
If Left(WS.Name, 1) = ">" Then
    For C = 2 To WS.Range("A1000").End(xlUp).Row
    If WS.Cells(C, 3) = Criteria Then
        WS.Range(Cells(C, 5), Cells(C, 12)).Copy
        Worksheets("Import").Range("A100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
        End If
        Next C
    End If
Next WS
Application.ScreenUpdating = True
Sheets("Import").Select
End Sub

1 个答案:

答案 0 :(得分:2)

由于您在工作簿中的工作表中循环,因此您应该完全限定您正在使用的任何范围。具体来说,以下一行:

WS.Range(Cells(C, 5), Cells(C, 12)).Copy

应更改为:

WS.Range(WS.Cells(C, 5), WS.Cells(C, 12)).Copy