EXCEL巨集(VBA語法)用迴圈將特定分頁資料複製到不同分頁

攝影師:Negative Space,連結:Pexels

2020年09月20日,我為了專案的測試計畫能更自動的撰寫,研究了EXCEL巨集(VBA語法),雖然網路上資源很多,有很多很厲害的語法,但是對於初學者來說,如何思考要使用什麼樣的資源,並寫下自己改良的code,這思考的流程,我想要把它紀錄下來,這一系列的文章,總共會分為以下主題,如你有興趣可以直接連接到那一篇去看。

第三個部分,用迴圈將特定分頁資料複製到不同分頁

這個部份我沒有搜尋任何的語法,因為之前朋友曾經跟我說不需要用copy跟paste的語法,只要使用range,並指定A分頁某位置 = B分頁某位置,這樣也可以節省效能,這邊是第二篇的延伸,前面語法是第二篇的,之後一併使用迴圈把工作表1的部分資料自動貼到新增好的分頁,並更改欄寬,自動換列等。

看完這組code的註解,你可以學習到以下資訊。

1.使用range語法取代select、copy、paste資料

2.修改欄寬

Sub 新增分頁()

Set A = Sheets("工作表1")
With A.Activate
'指定分頁的方式,使工作表1為指定狀態
Crow = Range("A" & Cells.Rows.Count).End(xlUp).Row
'Crow此欄的說明,可以參考第一篇
For j = 9 To Crow - 1
'從第九行(列)一直迴圈到倒數第二行(列)的意思
Sheets.Add After:=Sheets(Sheets.Count)
'新增分頁並置於最後
Sheets(Sheets.Count).Name = "T" & A.Cells(j, 1)
'命名分頁,見第二篇

Worksheets("T" & A.Cells(j, 1)).Range("A1") = A.Range("B" & j)
Worksheets("T" & A.Cells(j, 1)).Range("B1") = A.Range("C" & j)
Worksheets("T" & A.Cells(j, 1)).Range("C1") = A.Range("G" & j)
'使用range語法以等號取代select、copy、paste資料,是左邊資訊的位置貼到右邊的位置
'也就是將工作表1的部分資料貼到新分頁

Worksheets("T" & A.Cells(j, 1)).Columns("A:B").Select
Selection.ColumnWidth = 45
'修改欄寬
Worksheets("T" & A.Cells(j, 1)).Range("A1:B1").Select
    With Selection
Selection.WrapText = True
'自動換列
    End With
'勿漏掉end with
Next
End with
'勿漏掉end with
End Sub

喜歡這篇文章,可以免費加入liker.land會員,並在底下為我拍手5下表達支持,會轉為實質收益,以利我支付網站營運費用,也歡迎留言告訴我你的看法,真心感謝你看完這篇文章。

發表者:光點

一個相信 神的平凡女子,本業是一個系統分析師,喜歡分享、喜歡笑,也喜歡紀錄生命中各種體會到的美好點滴。