標題:
求一個可以快速解決的方法
[打印本頁]
作者:
opman
時間:
2014-11-7 14:36
標題:
求一個可以快速解決的方法
想將檔案BOOK1中的總表整理成BOOK2的行事
1.可以一班級分類,標題部變
2.每班人數不一樣多
3.名稱為班級+科目
請大大提供可以快速解決的方法,感謝您
作者:
opman
時間:
2014-11-7 14:50
回復
2#
mmxxxx
大大的心收到了,煩請解答的大大可以給程式,小學生無法下載。
作者:
Hsieh
時間:
2014-11-7 15:39
回復
1#
opman
直接在BOOK1的工作表模組執行
將會產生新工作表於BOOK1
Sub ex()
Set d = CreateObject("Scripting.Dictionary")
Dim Ar()
With 工作表1
For Each a In .Range(.[A2], .[A2].End(xlDown))
sh = Int(a / 100) & "年" & a Mod 100 & "班" & a.Offset(, 5) '班級科目字串
If IsEmpty(d(sh)) Then
ReDim Ar(1)
Ar(0) = .[A1:O1].Value '標題列
Ar(1) = Application.Transpose(Application.Transpose(a.Resize(, 15).Value)) '第一個資料列
d(sh) = Ar
Else
Ar = d(sh) '讀出陣列
s = UBound(Ar) + 1
ReDim Preserve Ar(s)
Ar(s) = Application.Transpose(Application.Transpose(a.Resize(, 15).Value)) '加入資料列
d(sh) = Ar '寫回陣列
End If
Next
End With
For Each ky In d.keys
With Worksheets.Add(after:=Sheets(Sheets.Count)) '插入工作表
.Name = ky '工作表命名
.Cells.NumberFormat = "@" '設成文字格式
.[A1].Resize(UBound(d(ky)) + 1, 15) = Application.Transpose(Application.Transpose(d(ky))) '寫入資料
End With
Next
End Sub
複製代碼
作者:
opman
時間:
2014-11-7 16:05
回復
4#
Hsieh
剛剛試用一下 結果For Each a In .Range(.[A2], .[A2].End(xlDown))就偵測出錯誤
由於剛學可以詳解每段的意思嗎 感恩
作者:
opman
時間:
2014-11-7 16:12
回復
4#
Hsieh
不好意思,剛修改With 工作表1 改成With Sheet1 就可以使用
真是厲害了
等詳解在好好研究一下 偷師學藝 感謝大大
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)