|
For j = 6 To Rz 'Rz数据表的最后一行行号
y1_b = True
gz = zzs.Cells(j, kz).Value '目标参数现网值
gz_arr = Split(gz, ";") '有时候是分号作分隔符的多个数字,因此转为数组
Re_lastr = Res.UsedRange.SpecialCells(xlCellTypeLastCell).Row '目标参数所在的列
Re_str = g_y1 & "~" & g_y2 '当不达标时候,输出的合理设置值范围
For p = 0 To UBound(gz_arr)
'MsgBox gz_arr(p)
If Val(gz_arr(p)) < g_y1 Or Val(gz_arr(p)) > g_y2 Then ’当现网值在合理值范围内,不用输出;否则输出
y1_b = False
Exit For
End If
Next p
‘以下可以忽略,只是在不达标时候,复制内容到结果表
If y1_b = False Then
Set myRange1 = zzs.Range(zzs.Cells(j, "B"), zzs.Cells(j, "D")) '因为现网设置值不符合,则选取MOI,SubNetWork,MEID区域
Set myRange2 = Res.Range(Res.Cells(Re_lastr + 1, "C"), Res.Cells(Re_lastr + 1, "E")) '在结果表Res的cells(i,"c")开始粘贴
myRange1.Copy Destination:=myRange2
Res.Cells(Re_lastr + 1, "G").Value = gz '复制粘贴现网设置
Res.Cells(Re_lastr + 1, "H") = Re_str '赋值合理设置值
yys.Range(yys.Cells(i, "D"), yys.Cells(i, "E")).Copy Destination:=Res.Range(Res.Cells(Re_lastr + 1, "A"), Res.Cells(Re_lastr + 1, "B")) '赋值粘贴英文名字,中文名字
yys.Cells(i, "H").Copy Destination:=Res.Cells(Re_lastr + 1, "I") '复制粘贴重要性
Set myRange1 = Nothing
Set myRange2 = Nothing
End If
Set gz_arr = Nothing
Next j 遍历200行的规范表数据,比较一个90M+的数据表,将不达标的结果输出到结果表,得到6W+行数据的结果表,耗费7065S(timer函数)。我认为太耗费时间。
请问各位大神,我应该如何优化啊?要知道,实际操作的数据表有260M的啊。{:soso_e118:}
|
|