- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
5#
發表於 2018-10-27 11:10
| 只看該作者
回復 3# benny15151515
試試看- Option Explicit
- Sub Ex()
- Dim Rng(1 To 2) As Range, xT As Integer, xEnd As Integer
- Set Rng(1) = Sheets("明細表").Range("A1:O38") '第一張明細表範圍
- xT = 5: xEnd = xT + 30 '明細表資料 的起始列號,結束列號
- Rng(1).Rows(xT & ":" & xEnd) = "" '清除明細表的資料
- Sheets("明細表").Rows(Rng(1).Offset(Rng(1).Rows.Count).Row & ":" & Rows.Count).Clear
- '清除上次餘留的明細表(留下第一張)
- Set Rng(2) = Sheets("資料").Range("a2").EntireRow '第一筆資料
- Do '跑資料的迴圈
- Rng(1).Cells(xT, 1).EntireRow = Rng(2).Value 'xT列上,貼上資料
- xT = xT + 1 'xT列 + 1
- Set Rng(2) = Rng(2).Offset(1) 'Offset(1)下一筆資料
- If Rng(2).Cells(1) = "" Then Exit Do '沒有資料離開,跑資料的迴圈
- If xT = xEnd Then '填滿明細表
- With Rng(1).Offset(Rng(1).Rows.Count) 'Rng(1).Rows.Count: 明細表的總列數
- Rng(1).Copy .Cells '複製 明細表
- Set Rng(1) = Rng(1).Offset(Rng(1).Rows.Count) ' Set : 指定物件引用給變數或屬性
- End With
- xT = 5 '重設明細表資料 的起始列號
- Rng(1).Rows(xT & ":" & xEnd) = "" '清除明細表的資料
- End If
- Loop
- End Sub
複製代碼 |
|