|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
附上代码
Sub test()
Dim r%, i%, c, aa, ws
Dim arr, brr
Dim d As Object
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set d = CreateObject("scripting.dictionary")
With Worksheets("数据")
r = .Cells(.Rows.Count, 1).End(xlUp).Row
c = .Cells(1, .Columns.Count).End(xlToLeft).Column
arr = .Range("a1:a" & r)
For i = 2 To UBound(arr)
If Not d.exists(arr(i, 1)) Then
Set d(arr(i, 1)) = Range("a1").Resize(1, c)
End If
Set d(arr(i, 1)) = Union(d(arr(i, 1)), .Cells(i, 1).Resize(1, c))
Next
End With
For Each aa In d.keys
On Error Resume Next
Set ws = Worksheets(aa)
If Err Then
Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))
ws.Name = aa
End If
On Error GoTo 0
With ws
d(aa).Copy .Range("a1")
End With
Next
Application.ScreenUpdating = True
End Sub
在“数据”工作表中,第二行广播里有些带函数的公式,例如cell H2, I2,J2。 当这一行数据被复制到“广播”工作表中时会同时将公式复制过去。请问,可不可以只复制数据的数值?类似加个.value之类的?
另外,能不能加一个命令,再形成工作表“广播”,“杂志”时同时清理掉这些工作表中已有的数据?
类似Worksheets(aa).clear?
|
|