標題:
有錄製巨集但要寫成迴圈還是摸不到邊
[打印本頁]
作者:
opman
時間:
2015-1-27 11:53
標題:
有錄製巨集但要寫成迴圈還是摸不到邊
本帖最後由 GBKEE 於 2015-2-2 15:28 編輯
社團數高達120個
學生人數固定40
希望可以將學生名單和成績整理到總表。
希望有大大可以幫忙。相關資料如附件。
作者:
luhpro
時間:
2015-1-30 22:40
社團數高達120個
學生人數固定40
希望可以將學生名單和成績整理到總表。
希望有大大可以幫忙。相關資料如 ...
opman 發表於 2015-1-27 11:53
Sub 整理()
Dim iCol%, iCols%
Dim lRows1&, lRows2&, lRowsT&, lRow&
Dim shS1 As Worksheet, shS2 As Worksheet, shST As Worksheet
Set shS1 = Sheets("學生名單")
Set shS2 = Sheets("成績")
Set shS3 = Sheets("總表")
shS3.Cells.Clear
With shS1
.[A1].Resize(.Cells(Rows.Count, 1).End(xlUp).Row).Copy shS3.[A1]
iCols = shS1.Cells(1, Columns.Count).End(xlToLeft).Column
For iCol = 2 To iCols
.Cells(1, iCol).Resize(41).Copy shS3.Cells(1, (iCol - 1) * 2)
shS2.Cells(1, iCol).Resize(41).Copy shS3.Cells(1, (iCol - 1) * 2 + 1)
Next
End With
End Sub
複製代碼
[attach]20167[/attach]
作者:
opman
時間:
2015-2-1 20:02
回復
2#
luhpro
感謝大大,但我是想接續貼下去。要如何改
作者:
GBKEE
時間:
2015-2-2 16:11
回復
3#
opman
Option Explicit
Sub 整理()
Dim iCols%, i%, iRows&
Dim Rng As Range
Sheets("總表").UsedRange.Clear
iRows = Sheets("學生名單").UsedRange.Rows.Count '標頭 + 學生人數
iCols = Sheets("成績").UsedRange.Columns.Count '社團數
For i = 2 To iCols
Set Rng = Sheets("總表").Cells(Sheets("總表").Rows.Count, "a").End(xlUp)
'往下貼的位置
With Rng.Offset(IIf(Rng.Row = 1, 0, 1)).Resize(iRows)
.Cells = Sheets("學生名單").Columns(1).Value '第一欄:學生名單
.Offset(, 1) = Sheets("學生名單").Columns(i).Value '第二欄:學生名稱
.Offset(, 2) = Sheets("成績").Columns(i).Value '第三欄:學生成績
End With
Next
End Sub
複製代碼
作者:
opman
時間:
2015-2-2 20:50
回復
4#
GBKEE
完全符合 謝謝大大 拜讀中
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)