我尝试实施其他代码来检查数据是否有效。如果不是,则从复制到当前工作簿中省略数据。
无效数据介于-0.01到0.01
之间11
22
222
333
33
11
22
33
答案 0 :(得分:1)
你不能复制这样的数据,如果你选择一个有很多单元格的范围,这个范围的值就等于左上角单元格的值。
将以下内容添加到您的代码中,以便以最快的VBA方式将wbkWorkbook2.Worksheets(“sheet1”)中的指定值范围复制到wbkWorkbook1.Worksheets(“RAW DATA”)。
Dim vSource as Variant
Dim LastRow as long, arrayRow as long, arrayCol as long
With wbkWorkbook2.Worksheets("sheet1")
'find last row with data in the sheet
LastRow = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
vSource = .Range("a2:y" & LastRow) 'or .Range("A2:Y25") if for example
'you only need this specified part of data
For arrayRow = Lbound(vSource) to Ubound(vSource)
For arrayCol = Lbound(vSource,2) to Ubound(vSource,2)
If vSource(arrayRow,arrayCol)<0.01 and vSource(arrayRow,arrayCol)>-0.01 then
vSource(arrayRow,arrayCol)=vbNullString
End if
Next arrayCol
Next arrayRow
End With
wbkWorkbook1.Worksheets("RAW DATA").Range("A13:Y36") = vSource