- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 121
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-5-19
               
|
回復 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
複製代碼 |
|