level 8
一个拆开学吧,以下代码可以实现,表格内保留第一行作为表头,然后剩下的分类保存到c:\test中单独的工作薄。
问以下代码那个是调整表头行数的,比如我要的是前8行是表头,应该改哪个参数
Private Sub CommandButton1_Click()
Dim Arr, Ary
Dim Dic As Object
Dim rng As Range
Set Dic = CreateObject("Scripting.Dictionary")
For Each rng In Range("a2", [A65536].End(3))
Dic(rng.Value) = ""
Next2
Arr = Dic.keys
For i = 0 To UBound(Arr)
ReDim Ary(1 To 4, 1 To 1)
k = 1
Ary(1, 1) = [A1]
Ary(2, 1) = [B1]
Ary(3, 1) = [C1]
Ary(4, 1) = [D1]
For Each rng In Range("a2", [A65536].End(3))
If rng = Arr(i) Then
k = k + 1
ReDim Preserve Ary(1 To 4, 1 To k)
Ary(1, k) = rng
Ary(2, k) = rng(1, 2)
Ary(3, k) = rng(1, 3)
Ary(4, k) = rng(1, 4)
End If
Next2
Workbooks.Add
With ActiveWorkbook
.ActiveSheet.[A1].Resize(k, 4) = Application.Transpose(Ary)
.SaveAs "C:\test\" & Arr(i) & ".xls"
.Close
End With
Next
End Sub
2009年12月03日 12点12分