
2020年09月20日,我為了專案的測試計畫能更自動的撰寫,研究了EXCEL巨集(VBA語法),雖然網路上資源很多,有很多很厲害的語法,但是對於初學者來說,如何思考要使用什麼樣的資源,並寫下自己改良的code,這思考的流程,我想要把它紀錄下來,這一系列的文章,總共會分為以下主題,如你有興趣可以直接連接到那一篇去看。
- 第一篇:EXCEL巨集(VBA語法)合併儲存格也能自動設定行高(列高)
- 第二篇:EXCEL巨集(VBA語法)用迴圈批量新增分頁並重新命名
- 第三篇:EXCEL巨集(VBA語法)用迴圈將特定分頁資料複製到不同分頁
- 第四篇:EXCEL巨集(VBA語法)使用迴圈遇到超出陣列索引怎麼辦?
第三個部分,用迴圈將特定分頁資料複製到不同分頁
這個部份我沒有搜尋任何的語法,因為之前朋友曾經跟我說不需要用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下表達支持,會轉為實質收益,以利我支付網站營運費用,也歡迎留言告訴我你的看法,真心感謝你看完這篇文章。
EXCEL巨集(VBA語法)用迴圈將特定分頁資料複製到不同分頁 有 “ 6 則迴響 ”