我正在尝试编写一个代码,用于过滤具有特定条件的数据并选择过滤后的数据,仅在不同的工作表中复制和粘贴可见单元格。但是,我收到错误"运行时错误1004"声明MS Office excel无法创建或使用数据范围,因为它太复杂了。
下面的是我正在使用的代码
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")
我在最后一步收到错误。
请为此提供一些解决方案。
谢谢, 拉维
答案 0 :(得分:0)
尝试调整最后一行说:
datarange.Range(Cells(2, 1).address & ":" & Cells(dlr, "BG").address)
答案 1 :(得分:-1)
如果你得到范围太复杂的消息,我认为你运气不好。
但是,如果可能,您可以对数据进行预排序,以便选择较少的非连续块。这会使选择变得不那么复杂。