|
请谨慎使用代码
Sub pengyx()
Dim ar(1 To 120000, 1 To 3)
Set d = CreateObject("Scripting.Dictionary")
For Each sh In Sheets
If sh.Name <> "需求描述" Then
rw = sh.Cells(sh.Rows.Count, 1).End(3).Row
arr = sh.Range("b5:e" & rw)
For i = 1 To UBound(arr)
n = n + 1
ar(n, 1) = arr(i, 1): ar(n, 2) = arr(i, 3): ar(n, 3) = arr(i, 4)
r = d(ar(n, 1))
If r = "" Then
s = s + 1
ar(s, 1) = ar(n, 1): ar(s, 2) = ar(n, 2): ar(s, 3) = ar(n, 3)
d(ar(n, 1)) = s
Else
ar(r, 2) = ar(r, 2) & "/" & ar(n, 2)
ar(r, 3) = ar(r, 3) & "/" & ar(n, 3)
End If
Next
End If
Next
'以下代码执行完后,关闭所有工作簿后,就再也不显示“要生成的表.xls”所有表了
'但在VBAProject(要生成的表.xls)中却能看到所有表都存在,还望有人指点
mywb = ThisWorkbook.Path & "/要生成的表.xls"
Set wb = GetObject(mywb)
Set rang = wb.Sheets("模板").UsedRange
For i = 1 To s
Set sht = wb.Sheets.Add
sht.Name = ar(i, 1)
rang.Copy sht.[a1]
sht.Range("c5") = ar(i, 1)
tx1 = Split(ar(i, 2), "/")
tx2 = Split(ar(i, 3), "/")
For j = 0 To UBound(tx1)
x = 18 + j
sht.Range("b" & x) = tx1(j)
sht.Range("d" & x) = tx2(j)
Next
x = 0
Next
wb.Close True
Set wb = Nothing
End Sub
|
|