標題:
手動製作巨集程式碼過於繁雜問題(如何精簡程式碼)
[打印本頁]
作者:
chaoyiho
時間:
2016-5-3 14:25
標題:
手動製作巨集程式碼過於繁雜問題(如何精簡程式碼)
如題
請問各位前輩,小弟在前幾篇看見有人問隱藏的問題
於是檢視了我自己的語法
因為是用錄巨集的方式自學的,所以程式碼總是可以發現許許多多的重複
像是
Sheets("Pmax").Select
Columns("C:AI").Select
Selection.EntireColumn.Hidden = True
Columns("AK:BC").Select
Selection.EntireColumn.Hidden = True
Columns("BE:BQ").Select
Selection.EntireColumn.Hidden = True
Columns("BS:CE").Select
Selection.EntireColumn.Hidden = True
Columns("CG:DI").Select
Selection.EntireColumn.Hidden = True
Columns("DV:IB").Select
Selection.EntireColumn.Hidden = True
Columns("ID:IG").Select
Selection.EntireColumn.Hidden = True
複製代碼
這樣的東西
或是
ActiveWindow.ScrollRow = 6
Sheets("Liner").Select
Sheets("Liner").Copy Before:=Sheets(1)
Sheets("Liner (2)").Select
Sheets("Liner (2)").Name = "總表"
Columns("B:GJ").Select
Selection.EntireColumn.Hidden = False
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
Sheets("總表").Select
Sheets("總表").Copy Before:=Sheets(2)
Sheets("總表").Select
Sheets("總表").Copy Before:=Sheets(1)
Sheets("總表").Select
Sheets("總表").Move Before:=Sheets(1)
Sheets("總表").Select
Sheets("總表").Copy Before:=Sheets(2)
Sheets("總表 (4)").Select
Sheets("總表 (4)").Name = "Sav"
Columns("C:AX").Select
Selection.EntireColumn.Hidden = True
Columns("BA:BM").Select
Selection.EntireColumn.Hidden = True
Columns("BO:CA").Select
....
複製代碼
這樣子不斷重複重複再重複的語法,在論壇爬文爬了一陣子
發現也許是太簡單 所以沒什麼人再討論這個問題
所以想說要來請益一下各位高手前輩
我該怎麼做精簡呢?
不然龐大的程式碼真的會讓程式跑的越來越慢..
作者:
准提部林
時間:
2016-5-3 21:03
錄製時,〔選取〕這個動作也會產生程式碼,亦即〔有2個動作〕
1.Columns("C:E").Select
2.Selection.EntireColumn.Hidden = True
可以併為一行 Columns("C:E").EntireColumn.Hidden = True
省略 Select 及 Selection,
另也可用:Range("C:E").EntireColumn.Hidden = True
若為〔不連續〕多欄位,則可:
Range("C:E,G:H,K:M").EntireColumn.Hidden = True
==================================
以下若不須跳轉工作表為〔當前〕作用,則 Select 那行也可刪除:
Sheets("Liner").Select 可刪
Sheets("Liner").Copy Before:=Sheets(1)
Sheets("Liner (2)").Select 可刪
Sheets("Liner (2)").Name = "總表"
==================================
錄製的程式碼,最好自己試著去改,從錯誤中去修正,這也是學習方法之一,
當然去多看別人寫的更可以對照再去修改,
不要一股腦的原碼就拿出來問,因為這是基礎問題,大概沒人會回答的,
VBE內建說明檔有時間多看看,有了基本認識,再來問較進階的問題!
作者:
ML089
時間:
2016-5-3 21:44
回復
1#
chaoyiho
看這篇說明
http://forum.twbts.com/thread-23-1-1.html
作者:
chaoyiho
時間:
2016-5-4 08:34
回復
2#
准提部林
謝謝兩位版主的用心,真的受教了!
我會持續學習的 有問題也還請各位前輩幫忙!
非常感謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)