|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
表1现有数据16行,最多也就18行。
你说表1有很多,二个含义:一是可能出现100行、500行、1000行.....,二是每次最多18行,有N次?
你的宏功能,主要是格式、函数的设置。如果版面数量可控的话,且不采用复制-粘贴方式,这些可以是预制的,第一次设置后,今后是不会变的,故不需要每次运行。你只要用一个数组,将表1的数据幅值到表2的A:D列即可。
Sub dfdld()
Dim i, ir, arr, brr, p, q
Dim dc As Object
Set dc = CreateObject("scripting.dictionary")
'只有2行数据的判断及插入行
ir = Range("a60000").End(xlUp).Row
arr = Range("a1:e" & ir)
For i = 1 To ir
dc(arr(i, 1)) = dc(arr(i, 1)) + 1
Next
p = dc.keys
q = dc.items
For i = 0 To UBound(p)
If q(i) = 2 Then
ir = ir + 1
Cells(ir, 1) = p(i)
End If
Next
Range("a1").CurrentRegion.Sort Range("a1")
'取出值并赋值到表2
arr = Range("a1:b" & ir)
brr = Range("d1:e" & ir)
Sheet2.Range("a3").Resize(ir, 2) = arr
Sheet2.Range("c3").Resize(ir, 2) = brr
Set dc = Nothing
End Sub |
评分
-
1
查看全部评分
-
|