运行时错误1004 - MS Office Excel无法创建或使用数据范围,因为它太复杂

时间:2017-10-06 11:26:14

标签: excel-vba vba excel

我正在尝试编写一个代码,用于过滤具有特定条件的数据并选择过滤后的数据,仅在不同的工作表中复制和粘贴可见单元格。但是,我收到错误"运行时错误1004"声明MS Office excel无法创建或使用数据范围,因为它太复杂了。

enter image description here

下面的

是我正在使用的代码

Set mwb = ActiveWorkbook
fname = ActiveWorkbook.Name
pth = path
period = Sheets("DEF").Range("F18").Value
ddate = Range("L6").Value


Sheets("MacroTOSplit").Select
blr = Range("C50").End(xlUp).Row
Rcfield = Range("C1").Value
For a = 4 To blr Step 1
    Sheets("MacroTOSplit").Select
    If Cells(a, "C").Value <> "" Then
       rc1 = Cells(a, "C").Value

        Sheets("XYZ").Select
        Cells.AutoFilter
        If lr >= 2 Then
        Range("B2:B" & lr + 1).EntireRow.Delete
        End If



       Sheets("ABC").Select


       dlr = lr
       Set datarange = Sheets("ABC").Range(Cells(1, 1), Cells(dlr, "BG"))
       'Filter for each unit and copy the data
       datarange.AutoFilter Field:=Rcfield, Criteria1:=rc1, Operator:=xlFilterValues
       datarange.Range(Cells(2, 1), Cells(dlr, "BG")).SpecialCells(xlCellTypeVisible).Copy Sheets("XYZ").Range("A2")

我在最后一步收到错误。

请为此提供一些解决方案。

谢谢, 拉维

2 个答案:

答案 0 :(得分:0)

尝试调整最后一行说:

datarange.Range(Cells(2, 1).address & ":" &  Cells(dlr, "BG").address)

答案 1 :(得分:-1)

如果你得到范围太复杂的消息,我认为你运气不好。

但是,如果可能,您可以对数据进行预排序,以便选择较少的非连续块。这会使选择变得不那么复杂。