|
Dim A, B, C As Integer
B = 14
For C = 1 To 60
For A = 1 To 100000
If Sheets("②Count Table").Cells(A + 4, 4) <> "" Then
Sheets("②Count Table").Cells(A + 4, B) = Sheets("②Count Table").Cells(A + 4, B - 1) '将DB计数的值赋予到现场计数
Sheets("②Count Table").Cells(A + 4, B) = Sheets("②Count Table").Cells(A + 4, B - 1) _
+ Sheets("②Count Table").Cells(A + 4, B + 1) - Sheets("②Count Table").Cells(A + 4, B + 3) End If
Next A
B = B + 5
Next C '现场计数=DB计数+采集遗漏-采集多余 A循环行 B循环列
这段代码在excel2007中运行速度非常慢,请朋友帮忙改下吧,达到同样效果就行。
本帖最后由 mxg825 于 2011-11-22 11:17 编辑
- Sub MXG825()
- Dim A, B, C As Integer
- B = 14
- ARR = Sheets("②Count Table").UsedRange
- For C = 1 To 60
- For A = 5 To UBound(ARR)
- If ARR(A, 4) <> "" Then
- ARR(A, B) = ARR(A, B - 1) '将DB计数的值赋予到现场计数
- ARR(A, B) = ARR(A, B - 1) + ARR(A, B + 1) - ARR(A, B + 3)
- End If
- Next A
- B = B + 5
- Next C '现场计数=DB计数+采集遗漏-采集多余 A循环行 B循环列
- Sheets("②Count Table").Cells.ClearContents '清空工作表数据
- Sheets("②Count Table").Range("A1").Resize(UBound(ARR), UBound(ARR, 2)) = ARR '把数组导入到工作表
- End Sub
复制代码
|
|