註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 手動製作巨集程式碼過於繁雜問題(如何精簡程式碼)
返回列表
下一主題
上一主題
發帖
手動製作巨集程式碼過於繁雜問題(如何精簡程式碼)
chaoyiho
發短消息
加為好友
chaoyiho
當前離線
UID
24122
帖子
51
主題
9
精華
0
積分
65
金錢
65
點名
0
作業系統
WIN7
軟體版本
OFFICE 2010
閱讀權限
20
在線時間
55 小時
註冊時間
2016-3-30
最後登錄
2016-7-21
中學生
帖子
51
主題
9
精華
0
積分
65
點名
0
作業系統
WIN7
軟體版本
OFFICE 2010
閱讀權限
20
註冊時間
2016-3-30
最後登錄
2016-7-21
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
發表於 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
....
複製代碼
這樣子不斷重複重複再重複的語法,在論壇爬文爬了一陣子
發現也許是太簡單 所以沒什麼人再討論這個問題
所以想說要來請益一下各位高手前輩
我該怎麼做精簡呢?
不然龐大的程式碼真的會讓程式跑的越來越慢..
樓主熱帖
怎麼在USERFORM中加入可篩選複選之樹狀圖
請問如何將多個EXCEL檔案合併成一個呢?
請教使用userform命令紐設定連結檔案問題
按鈕防呆裝置製作
請問如何可以將項目值為0的儲存格取代為最接
請問如何顯示訊息問題
請問excel2010與2013的vba程式碼差別
寫出的篩選程式會吃檔案且無法重複分析
收藏
分享
准提部林
發短消息
加為好友
准提部林
當前離線
UID
13768
帖子
2842
主題
10
精華
0
積分
2898
金錢
2898
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
在線時間
2115 小時
註冊時間
2013-5-13
最後登錄
2025-4-28
版主
帖子
2842
主題
10
精華
0
積分
2898
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
註冊時間
2013-5-13
最後登錄
2025-4-28
2
#
發表於 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內建說明檔有時間多看看,有了基本認識,再來問較進階的問題!
TOP
ML089
發短消息
加為好友
ML089
當前離線
UID
3671
帖子
2025
主題
13
精華
0
積分
2053
金錢
2053
點名
0
作業系統
WIN7
軟體版本
Office2007
閱讀權限
100
性別
男
來自
台北市
在線時間
2405 小時
註冊時間
2011-3-2
最後登錄
2024-3-14
版主
帖子
2025
主題
13
精華
0
積分
2053
點名
0
作業系統
WIN7
軟體版本
Office2007
閱讀權限
100
性別
男
來自
台北市
註冊時間
2011-3-2
最後登錄
2024-3-14
3
#
發表於 2016-5-3 21:44
|
只看該作者
回復
1#
chaoyiho
看這篇說明
http://forum.twbts.com/thread-23-1-1.html
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式
TOP
chaoyiho
發短消息
加為好友
chaoyiho
當前離線
UID
24122
帖子
51
主題
9
精華
0
積分
65
金錢
65
點名
0
作業系統
WIN7
軟體版本
OFFICE 2010
閱讀權限
20
在線時間
55 小時
註冊時間
2016-3-30
最後登錄
2016-7-21
中學生
帖子
51
主題
9
精華
0
積分
65
點名
0
作業系統
WIN7
軟體版本
OFFICE 2010
閱讀權限
20
註冊時間
2016-3-30
最後登錄
2016-7-21
4
#
發表於 2016-5-4 08:34
|
只看該作者
回復
2#
准提部林
謝謝兩位版主的用心,真的受教了!
我會持續學習的 有問題也還請各位前輩幫忙!
非常感謝
TOP
靜思自在 :
做好事不能少我一人,做壞事不能多我一人。
返回列表
下一主題
上一主題
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲