|
liushilin 发表于 2012-10-17 23:35
又要麻烦老师了,我照着你写的上述代码修改了一下用到我现在的汇总表里,基本可能实现新的汇总要求,但是 ... - Sub 表三甲线路汇总()
- Dim sh As Worksheet, Myname$
- Dim brr(1 To 60000, 1 To 7), crr As Variant
- Dim n As Integer, i As Integer, j As Integer, wn As String, k As Integer
- Set sh = ActiveSheet
- fld ThisWorkbook.Path
- Application.ScreenUpdating = False
- If [a6] <> "" Then Sheet1.Range("a5:g" & Sheet1.[b65536].End(3).Row).ClearContents
- For i = 1 To UBound(arr)
- Myname = Dir(arr(i))
- wn = Replace(Myname, ".xls", "")
- If InStr(wn, "结算表(线路)") Then
- If Myname <> ThisWorkbook.Name Then
- With GetObject(arr(i))
- If .Sheets("表三甲") Is Nothing Or .Sheets("表三甲").[b65536].End(3).Row < 7 Then GoTo nn
- crr = .Sheets("表三甲").Range("a7:g" & .Sheets("表三甲").[b65536].End(3).Row).Value
- n = n + 1
- brr(n, 3) = Replace(Myname, ".xls", "")
- For j = 1 To UBound(crr)
- If crr(j, 1) <> "" Then
- n = n + 1
- brr(n, 1) = crr(j, 1)
- For k = 2 To 7
- brr(n, k) = crr(j, k)
- Next
- End If
- Next
- .Close False
- End With
- End If
- End If
- nn:
- Next
- Erase arr
- l = 0
- Sheet1.[a5:g500].ClearContents
- Sheet1.[a5].Resize(n, 7).Value = brr
- Application.ScreenUpdating = True
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|