- 帖子
- 522
- 主題
- 36
- 精華
- 1
- 積分
- 603
- 點名
- 0
- 作業系統
- win xp sp3
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-12-13
- 最後登錄
- 2021-7-11
|
8#
發表於 2015-12-22 17:33
| 只看該作者
對不起, 因考慮到你可能需要 時間,
測試時有稍稍修改表格, 忘了改回來,
表格已改回來了, 也已重新修正VBA,
只增加時間而己, 其他不變, 試試看!!- Private Sub CommandButton1_Click()
- Dim sh1 As Worksheet
- Dim c0 As Long, r0 As Long, LstR0 As Long, cnt As Integer
- Dim c1 As Long, r1 As Long, LstR1 As Long, msg As Integer
- Set sh1 = Sheets("工作表1")
- msg = MsgBox("要清除 [工作表1] 中原有資料嗎?", vbYesNo)
- If msg = vbYes Then
- sh1.Cells.Clear
- [A1].Copy sh1.[A1]
- End If
- LstR0 = Cells(Rows.Count, "B").End(xlUp).Row
- LstR1 = sh1.Cells(Rows.Count, "B").End(xlUp).Row
- For r0 = Int(LstR1 / 5) * 6 + 2 To LstR0 Step 6
- r1 = Int(r0 / 6) * 5 + 2
- Cells(r0, 1).Resize(4, 2).Copy sh1.Cells(r1, 1)
- cnt = 2
- For c0 = 3 To 26
- If Cells(r0, c0) >= 36 Then
- cnt = cnt + 1
- Cells(1, c0).Copy sh1.Cells(r1 - 1, cnt)
- Cells(r0, c0).Resize(4, 1).Copy sh1.Cells(r1, cnt)
- End If
- Next
- Next
- End Sub
複製代碼 執行結果如下:
|
|