- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 107
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-5-4
               
|
6#
發表於 2012-4-20 22:36
| 只看該作者
回復 5# luke
試試看- Sub 轉入()
- With Sheet1
- r = 1: i = 3: k = 3
- Do Until r > 163
- .Cells(r, 2).Resize(IIf(r >= 65, 4, 8), 1).Copy Sheet2.Cells(i, k)
- If r = 65 Then
- r = 101
- Else
- r = r + IIf(r >= 65, 4, 8)
- End If
- If r <= 65 Then
- i = IIf(i = 3, 13, 3): k = IIf(i = 3, k + 5, k)
- ElseIf Int(((Int((r - 1) / 4) - 24) - 1) / 2) Mod 2 = 0 Then
- i = IIf(r = 101, 24, IIf(i = 24, 29, 24)): k = IIf(r = 101, 3, IIf(i = 24, k + 5, k))
- Else
- i = IIf(i = 29, 35, IIf(i = 35, 40, 35)): k = IIf(i = 24, k + 5, k)
- End If
- Loop
- End With
- End Sub
- Sub 轉出()
- Dim A As Range, C As Range
- With Sheet2
- Set A = Union(.[C3:R20], .[C24:R43])
- For i = 1 To A.Areas.Count
- r = IIf(i = 1, 1, 101)
- For j = 1 To 16 Step 5
- Set C = A.Areas(i).Columns(j).SpecialCells(xlCellTypeConstants)
- 'C.Select
- C.Copy Sheet1.Cells(r, 3)
- r = r + C.Count
- Next
- Next
- End With
- End Sub
複製代碼 |
|