Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2797|回复: 3

[已解决]求助,代码是否有误?

[复制链接]
发表于 2014-3-25 17:57 | 显示全部楼层 |阅读模式
工作表:表三,为何不在总工序表中显视出来,是否代码有误,求帮助。
最佳答案
2014-3-25 19:16
Sub Macro2()
On Error Resume Next
Dim arr, brr, crr(1 To 16, 1 To 8)
Dim n&, k%, j&, i&, s&
Range("a3:h65536").ClearContents
n = 3
For k = 5 To 6
    arr = Sheets(k).UsedRange
    For i = 2 To UBound(arr)
        If InStr(arr(i, 1), "对应单号") And Len(arr(i, 1)) > 5 Then
            brr = Sheets(k).Cells(i, 1).Resize(16, 8)
            y = Val(brr(1, 6)): m = Val(brr(1, 7)): r = Val(brr(1, 8))
            rq = DateSerial(y, m, r)
            dh = Mid(brr(1, 1), 6)
            mc = Mid(brr(2, 1), 4)
            s = 0
            For j = 4 To UBound(brr)
                If brr(j, 2) <> "" Then
                    s = s + 1
                    crr(s, 1) = rq
                    crr(s, 2) = dh
                    crr(s, 3) = mc
                    crr(s, 4) = brr(j, 2)
                    crr(s, 5) = brr(j, 5)
                    crr(s, 6) = brr(j, 6)
                    crr(s, 7) = brr(j, 7)
                    crr(s, 8) = brr(j, 3)
                End If
            Next
            Cells(n, 1).Resize(s, UBound(crr, 2)) = crr
            n = n + s
        End If
    Next
Next
x = Sheets(7).Range("a65536").End(xlUp).Row
If x < 3 Then Exit Sub
Sheets(7).Range("a3:h" & x).Copy Cells(n, 1)
End Sub

??.rar

128 KB, 下载次数: 2

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-3-25 18:23 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-3-25 18:44 | 显示全部楼层
dsmch 发表于 2014-3-25 18:23
建议详细说明要求,并示意结果

进仓,调拨,表三,三个明的数据在总工序表中显视出来。

??.rar

127.76 KB, 下载次数: 4

回复

使用道具 举报

发表于 2014-3-25 19:16 | 显示全部楼层    本楼为最佳答案   
Sub Macro2()
On Error Resume Next
Dim arr, brr, crr(1 To 16, 1 To 8)
Dim n&, k%, j&, i&, s&
Range("a3:h65536").ClearContents
n = 3
For k = 5 To 6
    arr = Sheets(k).UsedRange
    For i = 2 To UBound(arr)
        If InStr(arr(i, 1), "对应单号") And Len(arr(i, 1)) > 5 Then
            brr = Sheets(k).Cells(i, 1).Resize(16, 8)
            y = Val(brr(1, 6)): m = Val(brr(1, 7)): r = Val(brr(1, 8))
            rq = DateSerial(y, m, r)
            dh = Mid(brr(1, 1), 6)
            mc = Mid(brr(2, 1), 4)
            s = 0
            For j = 4 To UBound(brr)
                If brr(j, 2) <> "" Then
                    s = s + 1
                    crr(s, 1) = rq
                    crr(s, 2) = dh
                    crr(s, 3) = mc
                    crr(s, 4) = brr(j, 2)
                    crr(s, 5) = brr(j, 5)
                    crr(s, 6) = brr(j, 6)
                    crr(s, 7) = brr(j, 7)
                    crr(s, 8) = brr(j, 3)
                End If
            Next
            Cells(n, 1).Resize(s, UBound(crr, 2)) = crr
            n = n + s
        End If
    Next
Next
x = Sheets(7).Range("a65536").End(xlUp).Row
If x < 3 Then Exit Sub
Sheets(7).Range("a3:h" & x).Copy Cells(n, 1)
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-23 23:37 , Processed in 0.413280 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表