|
本帖最后由 桐羽sama 于 2017-3-3 12:04 编辑
想要处理一大段的数据资料,有若干行和94列,第一行是表头,第一列是每一行数据的编号,一个编号对应多条信息,例如:10001 | 20161208100000 | 2415 | 10725 | 0 | 10001 | 20161208120000 | 2415 | 10725 | 0 | 10001 | 20161208130000 | 2415 | 10725 | 0 | 10001 | 20161208140000 | 2415 | 10725 | 0 | 10002 | 20161208100000 | 229183 | 1109949 | 0 | 10002 | 20161208120000 | 229183 | 1109949 | 0 | 10002 | 20161208130000 | 229183 | 1109949 | 0 | 10002 | 20161208140000 | 229183 | 1109949 | 0 | 10003 | 20161208100000 | 233943 | 1100793 | 0 | 10003 | 20161208120000 | 233943 | 1100793 | 0 | 10003 | 20161208130000 | 233943 | 1100793 | 0 | 10003 | 20161208140000 | 233943 | 1100793 | 0 | 10004 | 20161208100000 | 2269 | 10920 | 0 | 10004 | 20161208120000 | 2269 | 10920 | 0 | 往后内容还有很多,包括编号在内的一共有94列数据,希望把这些数据全部分开按照编号分别转移到分页10001,10002,10003等等分页中,以下是在网上找到并修改的代码,提示情况是下标越界,但是小白真的不是很懂这个东西,希望各位老师帮忙看看代码有什么问题,如何修改:
Public Sub split1()
Dim x As Range, rng As Range
Sheets(1).Select
For Each x In Range([a2], [a65536].End(3))
If Application.Match(x, [a:a], 0) = x.Row Then
Set rng = x.Offset(, 1).Resize(Application.CountIf([a:a], x) - 1, 94)
If Sheets(x.Value).[b1] = "" Then
Sheets(x.Value).[b1:cp1] = Sheets(1).[b1:cp1].Value
Sheets(x.Value).[b2].Resize(rng.Rows.Count, 94) = rng.Value
Else
Sheets(x.Value).[b65536].End(3).Offset(1).Resize(rng.Rows.Count, 94) = rng.Value
End If
End If
Next
End Sub
|
|