註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (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程式碼差別
寫出的篩選程式會吃檔案且無法重複分析
收藏
分享
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
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
准提部林
發短消息
加為好友
准提部林
當前離線
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
靜思自在 :
不怕事多,只怕多事。
返回列表
下一主題
上一主題
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粉絲