1. 程式人生 > >來吧 帶你玩轉 Excel VBA

來吧 帶你玩轉 Excel VBA

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

來吧!帶你玩轉 Excel VBA(CD光碟1)(雙色)附帶近500VBA思考練習題,Exceltip.net出品

羅剛君 楊嘉愷編著

ISBN 978-7-121-20627-6

20137月出版

定價:85.00

648

16

編輯推薦

全面:從錄製巨集開始帶你步入VBA殿堂

詳細:每個案例都詳述思路與步驟

貼心:提供售邱服務論壇與QQ

融洽:大量菜鳥與玩家伴你一同成長

內容提要

本書旨在普及Excel VBA基礎理論,以及通過VBA 的高階應用擴充套件Excel的功能,提升讀者的製表效率,解決工作中的疑難,同時亦可藉此開發商業外掛。

本書主要分為操作自動化引言篇、入門篇、進階篇和疑難解答篇,覆蓋從入門到提高的所有內容,以滿足不同層次的讀者需求。其中操作自動化引言篇簡述了操作自動化的需求與方式,藉此引出VBA入門篇。

VBA 入門篇包含第2章到第13 章,主要介紹了與VBA相關的基本概念、常用語句的語法、錯誤處理技巧、使用陣列、開發自定義函式和設計窗體等內容。進階篇包含第14章到第22 章,主要介紹了類的應用、讀取網頁資料、製作選單、開發外掛、保護程式碼、製作安裝程式,及開發具有撤銷功能的外掛等內容。疑難解答篇即本書第23章,該章提供了365 個疑難問答,幫助讀者解決日常工作中的一些困惑。

本書每段程式碼都有思路分析,對每句程式碼都提供了註釋,且採用雙色印刷,將程式碼與程式碼註釋分開,從而提升讀者的閱讀體驗。

本書提供了完善的售後服務,包括售後服務QQ群(群號在隨書光碟的每一個案例檔案中),及售後服務論壇,地址為:

http://www.exceltip.net/forum-75-1.html

目錄

第一篇 操作自動化引言篇

1操作自動化2

1.1自動化操作的價值.3

1.1.1自動化操作的必要性3

1.1.2實現操作自動化的兩個途徑4

1.2利用巨集簡化日常工作5

1.2.1三分鐘學會錄製巨集.5

1.2.2執行巨集的方法8

1.2.3兩種方法讀懂巨集程式碼9

1.2.4巨集的優缺點分析12

1.2.5如何發揮巨集的長處.13

1.3使用VBA強化Excel功能14

1.3.1追根溯源:什麼是VBA14

1.3.2知己知彼:解析VBA的優缺點14

1.3.3窺斑見豹:從一個案例初識VBA.15

1.4 Excel VBA的發展前景.16

1.4.1簡化工作16

1.4.2開拓專業17

1.5本書架構17

1.6課後思考18

 

第二篇 VBA入門篇

2程式碼應用基礎.20

2.1區分VBE程式碼視窗21

2.1.1認識VBE介面21

2.1.2最常用的程式碼存放區:標準模組22

2.1.3工作簿事件程式碼視窗:ThisWorkbook26

2.1.4工作表事件程式碼視窗:Sheet127

2.1.5窗體程式碼視窗:UserForm127

2.1.6建立隱藏物件的程式碼視窗:類模組.28

2.2錄入程式碼28

2.2.1程式碼的存放位置28

2.2.2寫入程式碼的方式28

2.2.3提升程式碼的可讀性.30

2.2.4呼叫快速資訊.35

2.3四種程式碼執行方式.35

2.3.1快捷鍵呼叫36

2.3.2單擊按鈕執行.37

2.3.3自動執行37

2.3.4在公式中呼叫.39

2.4儲存程式碼40

2.4.1檔案儲存格式對VBA程式碼的影響40

2.4.2單獨儲存程式碼模組.41

2.5讓程式碼暢通無阻41

2.5.1調整巨集的安全等級.41

2.5.2新增受信任位置42

2.5.3將程式碼封裝為載入項43

2.6反覆呼叫相同程式碼.43

2.6.1使用個人巨集工作簿.43

2.6.2載入巨集.44

2.6.3載入項.44

2.7呼叫程式碼的幫助系統44

2.7.1什麼是幫助45

2.7.2如何從幫助中查詢程式碼含義45

2.7.3呼叫網路資源.47

2.8課後思考47

3從概念開始認識VBA49

3.1認識過程50

3.1.1過程的分類50

3.1.2子過程的基本語法.50

3.1.3子過程的命名要求.52

3.1.4子過程的呼叫方法與訪問限制.53

3.1.5過程的執行順序54

3.1.6過程的遞迴56

3.2關於引數57

3.2.1引數的存在價值57

3.2.2過程名稱中的引數.57

3.2.3引數的賦值方式58

3.2.4可選引數與必選引數60

3.2.5程式碼中的引數.61

3.3理解物件63

3.3.1什麼是物件63

3.3.2物件的引用層次64

3.4物件的屬性與方法.64

3.4.1認識屬性與方法65

3.4.2自動呼叫屬性與方法66

3.4.3怎樣才算完整的VBA語句67

3.5物件的事件.68

3.5.1什麼是事件.68

3.5.2事件的存在價值68

3.5.3事件的分類與程式碼錄入方式69

3.5.4事件的引數.71

3.6課後思考72

4詳解物件及其層次結構74

4.1檢視所有物件75

4.1.1從物件瀏覽器檢視物件.75

4.1.2從幫助中呼叫物件資訊.75

4.2物件的層次與引用方式.76

4.2.1物件的層次.76

4.2.2使用物件名稱引用物件.76

4.2.3使用複數形式表示物件集合77

4.2.4使用序號引數引用集合中的子物件.78

4.2.5引用子物件.79

4.2.6引用活動物件80

4.2.7引用父物件.80

4.2.8利用WITH語句引用重複出現的物件.81

4.3 Range物件83

4.3.1 Range("A1")引用方式84

4.3.2 Cells(1,1)引用方式87

4.3.3 [a1]引用方式.87

4.3.4活動單元格:ActiveCell.88

4.3.5下一個單元格:Next89

4.3.6螢幕座標下的單元格:RangeFromPoint89

4.3.7選區:SelectionRangeSelection90

4.3.8已用區域:UsedRange92

4.3.9當前區域:CurrentRegion94

4.3.10當前陣列區域:CurrentArray95

4.3.11按條件引用區域:SpecialCells96

4.3.12模擬Ctrl+方向鍵產生的單元格:End.99

4.3.13按偏移量重置區域引用:Offset.101

4.3.14按寬度與高度重置區域:Resize103

4.3.15引用多區域的合集:Union104

4.3.16引用多區域的交集:Intersect104

4.3.17用名稱引用區域107

4.4圖形物件108

4.4.1 Shapes物件與子物件109

4.4.2圖形物件的名稱109

4.4.3 DrawingObjects 110

4.4.4圖形物件的類別子集 110

4.5表物件. 112

4.5.1表的合集與子物件. 112

4.5.2表的分類 112

4.5.3活動表. 113

4.5.4隱藏工作表的特性. 113

4.5.5引用名字為數值的工作表的技巧 114

4.6工作簿物件. 115

4.6.1工作簿合集與子物件 115

4.6.2活動工作簿 115

4.6.3關於字尾名 116

4.6.4關於工作簿格式 117

4.7 Excel應用程式物件. 117

4.7.1 Excel的頂層物件:Application.117

4.7.2呼叫子物件時可以省略Application 118

4.7.3不同版本的Excel之間的差異. 118

4.8課後思考 119

5揭密資料型別與變數、常量.121

5.1資料型別122

5.1.1區分資料型別的必要性122

5.1.2資料型別的分類123

5.1.3轉換資料型別.125

5.2定義變數127

5.2.1變數的用途128

5.2.2定義變數的方法129

5.2.3變數的命名規則130

5.2.4變數的作用域.131

5.2.5變數的生命週期133

5.2.6靜態變數與動態變數的分別134

5.2.7宣告物件變數.136

5.2.8物件變數的初始化與釋放.137

5.3定義常量138

5.3.1常量的用途138

5.3.2常量的定義方式138

5.3.3變數與常量的異同分析140

5.4課後思考140

6條件語句與迴圈語句.142

6.1 IF語句解析143

6.1.1條件語句的重要性.143

6.1.2 If.Then.Else的單行模式.143

6.1.3 AndOrNot在條件語句中的作用.144

6.1.4案例解析:指定工作簿的最後開啟日期146

6.1.5 If.Then.Else的塊形式147

6.1.6塊形式的應用案例:建立日期批註.148

6.1.7巢狀使用IF語句.150

6.1.8 IF語句的常見錯誤與防錯之法.156

6.2 Select Case語句解析157

6.2.1 Select Case語句的價值.158

6.2.2 Select Case基本語法158

6.2.3多條件應用案例160

6.2.4 Select CaseIF Then語句比較163

6.3 IIFChoose函式164

6.3.1 IIF函式語法解析.165

6.3.2 IIF函式案例應用:判斷Excel的版本號.165

6.3.3 IIF的優缺點.166

6.3.4 Choose函式語法解析167

6.3.5 Choose函式應用案例:開啟搜尋引擎.167

6.4 For Next語句解析.169

6.4.1迴圈語句的價值169

6.4.2 For Next語句基本語法169

6.4.3步長值對迴圈結果的影響.171

6.4.4 For Next語句應用案例171

6.5 For Each Next語句解析.175

6.5.1遍歷物件集合175

6.5.2 For EachNext語句基本語法175

6.5.3 For EachNext語句應用案例:定位大於某值的單元格176

6.6 While Wend語句解析178

6.6.1 While Wend語句基本語法.178

6.6.2 While Wend語句應用案例:判斷工號是否重複179

6.7 DO Loop語句解析182

6.7.1 Do Loop語法分析.182

6.7.2 Do Loop語法一應用183

6.7.3 Do Loop語法二應用184

6.7.4 Do Loop語法三應用185

6.7.5 Do Loop語法四應用185

6.7.6總結四種迴圈語句的優缺點188

6.8課後思考189

7 4類常見物件的應用案例.191

7.1單元格物件.192

7.1.1選擇單元格.192

7.1.2篩選與複製區域的值193

7.1.3多區域複製194

7.1.4選擇性貼上資料196

7.1.5重置已用資料區域.199

7.1.6查詢所有成績為100的單元格201

7.1.7將表示平方米和立方米後面的23設為上標202

7.1.8合併相鄰且相同的單元格.203

7.1.9按行合併且保留所有資料.205

7.1.10隔行插入行.207

7.1.11標示選區中的重複值208

7.2圖形物件210

7.2.1批量匯入圖片與圖片名稱.210

7.2.2統一表中所有圖片大小及對齊圖片212

7.2.3批量匯出圖片.214

7.2.4插入帶圖片背景的批註216

7.3工作表物件.219

7.3.1顯示所有隱藏的工作表219

7.3.2建立以本月每日日期命名的工作表220

7.3.3保護所有公式.221

7.3.4批量重命名錶.223

7.3.5查詢所有工作表中有迴圈引用的單元格224

7.3.6對職工表按學歷排序225

7.3.7建立工作表目錄227

7.4工作簿物件.228

7.4.1開啟帶密碼且帶有自動巨集的工作簿228

7.4.2另存工作簿且以今天的日期命名229

7.4.3將外部連結轉換成值230

7.4.4關閉工作簿且不儲存修改內容.231

7.4.5定時儲存且備份工作簿233

7.4.6重新命名活動工作簿.234

7.5課後思考236

8深入剖析VBA的各種事件.238

8.1事件的級別與順序.239

8.1.1事件的級別與程式碼儲存位置239

8.1.2事件的執行方式240

8.1.3事件的執行順序241

8.2禁用與啟用事件241

8.2.1臨時關閉事件.242

8.2.2防止事件的連鎖反應242

8.3工作表事件詳解244

8.3.1工作表事件列表244

8.3.2 Change事件的特例245

8.3.3事件案例:啟用工作表時驗證訪問許可權245

8.3.4事件案例:自動標示當前行的背景.247

8.3.5事件案例:雙擊單元格時定位最大值或最小值248

8.3.6事件案例:在特定區域右擊單元格時產生工作表目錄.250

8.3.7事件案例:輸入表示式時在右列自動返回計算結果251

8.3.8事件案例:單擊目錄時可開啟隱藏的工作表252

8.3.9事件案例:實時保護已錄入資料的單元格.253

8.3.10事件案例:在狀態列顯示當前科目的不及格人數.254

8.3.11事件案例:通過資料有效性的下拉列表呼叫對應的圖片255

8.4工作簿事件詳解256

8.4.1工作簿事件列表257

8.4.2事件案例:記錄工作簿開啟次數258

8.4.3事件案例:顯示活動工作表中的產量達標率259

8.4.4事件案例:儲存工作簿時備份檔案.260

8.4.5事件案例:列印資料前檢查資料是否填寫完整261

8.4.6事件案例:關閉工作簿時更新工作表目錄.262

8.4.7事件案例:新建工作表時呼叫模板格式263

8.4.8事件案例:禁止修改總表名稱.264

8.4.9事件案例:新建圖表時自動設定為陰影、圓角265

8.5應用程式事件詳解.266

8.5.1應用程式與類266

8.5.2事件案例:開啟任意工作簿時建立工作表目錄266

8.5.3事件案例:新建工作簿時自動儲存.268

8.6按時執行程式碼270

8.6.1 OnKey方法的語法分析270

8.6.2建立計劃任務271

8.7課後思考271

9處理程式碼錯誤.273

9.1程式碼錯誤型別分析.274

9.1.1版本問題274

9.1.2引數賦值不當274

9.1.3變數定義不準確276

9.1.4物件不存在.276

9.2錯誤處理語句277

9.2.1詳解Err物件277

9.2.2詳解Error函式.279

9.2.3 On Error Resume Next語句.280

9.2.4 On Error GoTo Line語句281

9.2.5 On Error GoTo 0語句283

9.2.6 GoSub.Return語句.284

9.3案例應用287

9.3.1錯誤處理的常規思路288

9.3.2案例應用:為軟體設計收集資訊反饋的功能.289

9.3.3案例應用:根據選區的檔名批量匯入圖片.292

9.3.4案例應用:一鍵屏弊錯誤值294

9.4課後思考295

10使用陣列提升程式效率297

10.1基本概念298

10.1.1何謂陣列298

10.1.2陣列的特點.298

10.1.3一維陣列298

10.1.4二維陣列301

10.1.5陣列的引數.302

10.1.6宣告陣列變數.303

10.1.7動態陣列與靜態陣列的分別306

10.1.8釋放動態陣列的儲存空間. 311

10.2陣列函式312

10.2.1用函式建立陣列312

10.2.2獲取陣列元素.313

10.2.3判斷變數是否為陣列314

10.2.4轉置陣列314

10.2.5獲取陣列的上標與下標.316

10.2.6轉換文字與陣列317

10.2.7篩選陣列319

10.3案例分析320

10.3.1將指定區域的單詞統一為首字母大寫.320

10.3.2羅列不及格人員姓名、科目和成績322

10.3.3將字串合併到區域323

10.3.4將職員表按學歷拆分成多個工作表325

10.3.5將選區的資料在文字與數值間互換327

10.3.6獲取兩列資料的相同項.329

10.3.7羅列至少三科不及格的學生姓名331

10.4課後思考333

11處理重複值335

11.1呼叫內部功能336

11.1.1高階篩選336

11.1.2刪除重複項.342

11.1.3陣列透視表.345

11.2 Collection:集合350

11.2.1集合的特性.350

11.2.2集合的語法.351

11.2.3使用集合獲取區域中的不重複值354

11.2.4羅列B列重複出現的身份證號碼356

11.3 Dictionary:字典357

11.3.1字典物件的前期繫結和後期繫結357

11.3.2字典的特點.360

11.3.3字典的屬性與方法360

11.3.4  獲取選區中的唯一值364

11.3.5對採購表分類求和366

11.3.6對採購表分類計數367

11.3.7對產量表按組別和產品分類統計368

11.4課後思考369

12 開發自定義函式372

12.1語法分析373

12.1.1 Function過程與Sub過程的區別.373

12.1.2 Function過程的基本語法.373

12.1.3 OptionalParamArray的作用與區別.374

12.1.4自定義函式的命名規則.375

12.2開發簡單的函式.375

12.2.1開發函式的常規思路375

12.2.2 Shui:計算個人所得稅.376

12.2.3 EndRow:計算工作表最後非空行/列的行號/列號.378

12.3開發複雜函式380

12.3.1 Replacement:替換第N次出現的字元380

12.3.2 Look:Vlookup之升級版382

12.3.3 HeBin:按條件合併.384

12.4開發陣列函式386

12.4.1 Only:獲取一個或多個區域的唯一值.386

12.4.2 Statistics:對資料分類彙總.387

12.5為函式指定註釋.390

12.5.1 MacroOptions的功能與語法.390

12.5.2為函式Look添加註釋390

12.6課後思考392

13設計程式窗體.394

13.1窗體與控制元件簡介.395

13.1.1窗體的功能.395

13.1.2建立與執行UserForm物件.396

13.1.3使用工具箱.398

13.1.4標籤控制元件400

13.1.5文字框控制元件.400

13.1.6命令控鈕400

13.1.7複合框.401

13.1.8列表框.401

13.1.9複選框.402

13.1.10選項按框402

13.1.11框架.402

13.1.12切換按鈕403

13.1.13多頁控制元件404

13.1.14滾動條.405

13.1.15影象控制元件405

13.1.16 Flash控制元件405

13.1.17網頁控制元件406

13.2設定屬性407

13.2.1屬性視窗的用途407

13.2.2設定屬性的兩種方式407

13.2.3文字框屬性.409

13.2.4命令按鈕屬性.413

13.2.5複選框屬性.415

13.2.6列表框屬性.417

13.2.7複合框屬性.422

13.2.8影象控制元件屬性.425

13.2.9 Flash控制元件屬性.426

13.2.10批量設定控制元件的屬性426

13.3窗體與控制元件的事件.427

13.3.1 UserForm物件的事件427

13.3.2控制元件的事件.428

13.4窗體應用實戰438

13.4.1開發多工作表查詢窗體.438

13.4.2開發多工作表快速錄入面板441

13.4.3以指定名稱批量新建或複製工作表443

13.5課後思考448

 

第三篇 進階篇

14類模組應用450

14.1類模組基礎.451

14.1.1類的概念與用途451

14.1.2宣告與呼叫類.451

14.2  類模組與程式級事件453

14.2.1  在狀態列顯示當前行的最大值與最小值地址453

14.2.2錄入資料時自動將M後面的數字2顯示為上標.455

14.3類模組與窗體控制元件.456

14.3.1何時需要使用類456

14.3.2為按鈕批量指定MouseMove事件.456

14.4課後思考459

15 Excel VBAWeb應用461

15.1 Web基礎知識.462

15.1.1 Web資料的收發原理.462

15.1.2 HTML以及網頁元素分析465

15.2使用Web查詢知識批量獲取匯率466

15.2.1獲取網頁資料的實際網址466

15.2.2通過錄制巨集匯入匯率首頁資料.468

15.2.3完善巨集程式碼批量匯入網頁資料.469

15.3運用Web資料收發機制獲取網頁資訊470

15.3.1 Web資料通訊常用物件簡介.470

15.3.2開發中英互譯工具.471

15.3.3開發火車票查詢工具474

15.4運用網頁元素分析技術實現網頁控制和讀取480

15.4.1建立及訪問IE物件480

15.4.2如何訪問網頁元素.481

15.4.3自動登入新浪微博.482

15.5課後思考485

16建立傳統工具欄與選單487

16.1自定義工具欄488

16.1.1自定義工具欄模板.488

16.1.2自定義工具欄二級選單模板489

16.2自定義工作表選單.490

16.3自定義單元格右鍵選單.492

16.4課後思考493

17定義Ribbon功能區選項卡.495

17.1功能區開發基礎.496

17.1.1 Ribbon的特點496

17.1.2功能區的元件圖示.496

17.1.3手動定製功能區496

17.1.4認識Ribbon程式碼編輯器.497

17.1.5獲取內建按鈕圖示.498

17.2 Ribbon定製之語法分析499

17.2.1功能區程式碼的結構.499

17.2.2顯示與隱藏功能區:ribbon.501

17.2.3隱藏選項卡:tab.501

17.2.4建立新選項卡:tab502

17.2.5建立新組:group.503

17.2.6建立對話方塊啟動器:dialogBoxLauncher505

17.2.7在組中新增命令按鈕:button507

17.2.8建立切換按鈕:toggleButton509

17.2.9標籤與複選框:labelControl/checkBox . 511

17.2.10在按鈕之間新增分隔條:separator512

17.2.11建立彈出式選單:menu.513

17.2.12建立拆分按鈕:splitButton.514

17.2.13建立下拉列表:dropDown516

17.2.14建立編輯框:editBox.517

17.2.15鎖定或隱藏內建功能518

17.3使用回撥函式強化功能區.519

17.3.1為什麼需要使用回撥函式.519

17.3.2回撥函式詳解.520

17.3.3建立13號才能使用的按鈕.522

17.3.4建立按下與彈起時自動切換圖示的按鈕524

17.3.5建立一個能顯示圖形物件數量的標籤.526

17.3.6在功能區中快速查詢527

17.3.7在組的標籤處顯示問候語.529

17.3.8呼叫大圖片建立下拉選單.531

17.3.9通過複選框控制錯誤標識的顯示狀態.534

17.4使用模板536

17.4.1模板的重要性.536

17.4.2模板的使用方法536

17.4.3製作兩個模板.537

17.5建立Backstage檢視.540

17.5.1 Backstage 檢視與Office按鈕540

17.5.2Backstage檢視中新增按鈕540

17.5.3新增子選項卡、組及命令按鈕.542

17.5.4在新選項卡中建立彈出式選單與說明.544

17.5.5將命令按鈕顯示在兩列中.547

17.5.6建立導航選單.550

17.5.7隱藏Backstage檢視中的所有按鈕.552

17.6課後思考553

18開發通用外掛.555

18.1外掛的分類.556

18.1.1什麼是外掛.556

18.1.2外掛的分類.556

18.1.3開發外掛和編寫普通程式碼的分別556

18.2漫談載入巨集.557

18.2.1載入巨集工作簿的特點557

18.2.2載入巨集管理器.558

18.2.3載入巨集的使用方法.558

18.2.4載入巨集的安全性559

18.3製作工作表批量重新命名外掛559

18.3.1開發通用外掛的基本步驟559

18.3.2羅列外掛需求560

18.3.3設計外掛窗體560

18.3.4編寫程式碼562

18.3.5建立選單與設定快捷鍵.564

18.3.6另存為載入巨集565

18.3.7安裝並測試功能566

18.4課後思考567

19保護程式碼.569

19.1關於安全性.570

19.1.1保護程式碼的必要性.570

19.1.2保護程式碼的常用手法570

19.1.3 VB6.0封裝VBA程式碼的基本步驟570

19.2封裝“批量重新命名”外掛571

19.2.1安裝VB 6.0企業版571

19.2.2建立VB工程571

19.2.3新增引用及完善外接程式描述.572

19.2.4匯入窗體573

19.2.5宣告應用程式介面及變數573

19.2.6編寫選單與功能區.574

19.2.7修改VBA程式碼576

19.2.8生成DLL檔案.577

19.2.9安裝與解除安裝外掛577

19.2.10測試外掛功能577

19.2.11 VBVBA程式碼的差異分析.578

19.3封裝函式579

19.3.1封裝函式的兩種方式579

19.3.2Excel中編寫並測試函式.580

19.3.3建立VB工程580

19.3.4新增引用及註釋580

19.3.5貼上VBA程式碼並修改程式碼581

19.3.6生成DLL檔案.581

19.3.7安裝與解除安裝外掛581

19.3.8測試外掛功能582

19.4課後思考582

20製作安裝程式.584

20.1準備工作585

20.1.1VBA程式碼轉換成安裝程式的必要性585

20.1.2製作安裝程式的常用軟體585

20.1.3 Inno Setup簡介585

20.1.4安裝Inno Setup585

20.2設計“工作表批量命名”安裝程式.585

20.2.1準備工作585

20.2.2通過指令碼嚮導生成指令碼程式碼586

20.2.3修改程式碼並編譯成安裝檔案589

20.2.4安裝軟體589

20.2.5指令碼程式碼含義解釋.590

20.3設計更人性化的安裝程式.591

20.3.1提示關閉Excel再安裝.591

20.3.2新增安裝密碼.592

20.3.3設計可選安裝項593

20.4課後思考594

21VBA程式碼也能撤銷.596

21.1突破撤銷限制597

21.1.1 VBA命令的撤銷限制.597

21.1.2設計可以撤銷的Sub過程的思路與步驟.597

21.1.3什麼情況適合使用Application.OnUndo方法599

21.1.4 Application.OnRepeat方法重複執行命令.599

21.2可撤銷的“簡體轉繁體”外掛.600

21.2.1編寫“簡體轉繁體”程式碼.600

21.2.2將普通過程加工成可撤銷的外掛600

21.3課後思考603

22開發製作工資條工具.605

22.1認識工資條.606

22.1.1工資條的形式.606

22.1.2工資條工具的基本需求.606

22.2編寫工資條程式606

22.2.1編寫程式碼606

22.2.2測試程式碼607

22.3完善工資條工具608

22.3.1將工資條程式轉換成工具基本思路608

22.3.2完善工資條工具608

22.4課後思考612

 

第四篇 疑難解答篇

23 365個常見問題答疑.614

附錄A見隨書光碟

精彩節摘

我的自學之路

我是羅剛君,來自四川的一個小縣城——資中縣。

我是個地道的三無人員——無高等學歷(初中畢業)、無突出特長、無顯赫背景,所以19961月,當時才19歲的我就踏上了打工之路。

錯失機遇

在打工生涯的前幾年,一直在東莞市裕元鞋廠流水線上工作,無緣接觸電腦,甚至曾有一段時間在心理上抵觸電腦。

記得大概是1998 年時,東莞市高鎮開始颳起了電腦風潮,滿街的打字班、Office初級班、高階文祕班、繪圖班等在大量招收學員。當時流水線上有較多同事都陸續報名打字班和Office初級班,少數同事開始學習CAD繪圖和VB程式設計等課程。曾有一位已經學了兩個月的同事勸我也報名學習電腦,還說電腦的熟練程度會大大影響未來找工作的成功率,而且對於我們這種一心想擺脫流水線的人群而言,電腦才是最好的出路。可惜當時我並沒有接受同事的勸導,只拋下一句“你已經學完了,現在不也和我一樣在流水線工作嗎?”

現在想來,悔之晚矣!若當初聽了同事的話,早8年學習Office軟體,則早日實現個人目標。

1996年到2004年年初的8年間,我都在鞋廠的流水線和鞋材廠生產車間的注塑機上渡過,一直無法實現轉入文職的願望。

艱辛的 DOS征程

在裕元鞋廠工作期間,廠裡為約10萬員工提供免費的廠報和雜誌,廠報編輯部會每月向廠裡的員工徵稿。

工廠從1998年開始由12小時工作制轉為8小時工作制,所以在流水線工作的我也每天擁有了大量的閒暇時間。為了消除無聊、打發時間,我每月向廠報投稿,陸續地發表了近百篇文稿,包括小小說、評論和詩歌等。因此,後來廠裡的多個辦公室內招文員時,我也獲得了一些面試的機會,可惜的是每次都被最後一關擋下來——電腦打字測試。

碰壁多次後,我開始下定決心要惡補電腦技術。

當時的我手中並沒有閒錢購書學習,月薪650元,需要郵寄600元回家,手裡的50元包含了整月的一切開支。所以只能下班後去書店翻閱電腦書籍,將自認為有用的和感興趣的知識點記在腦中,然後回到宣明會提供的免費電腦室上機練習。

最初,我最有興趣的是DOS命令。當時電腦室並沒有網路,更談不上百度和Google了,所以常去書店翻看DOS教科書,記下三句命令後回到宣明會的電腦室練習。當掌握好當前三句命令後再去書店查閱同一本書,記下另三句命令後回到電腦室繼續練習……如此周而復始。

由於電腦室每天開放的時間和機臺都極其有限,而排隊上機者眾多,所以會經常記下了程式碼卻沒有電腦練習,導致簡單的幾十句DOS程式碼我用了一個多月的時間才掌握好。若在如今這種網路四通八達的環境下,可能只需幾個小時就可以全部掌握這些命令的基本語法,熟悉它們的功能。

坎坷購機自學路

在學會DOS之後,我對電腦開始有了濃厚的興趣,於是在工廠附近的“恆輝電腦培訓班”報名學習Word,這是基於投稿寫作的需要。

當時雖然報了Word班,其實沒有上過一節Word課,每天下班後都去培訓班一個人對著書和電腦自學,當時的李枝花老師曾經笑侃:“所有學生都像你這種方式學習,我開班就輕鬆多了”。其實我現在也慶幸當時養成了自學的習慣,雖然學習進度偏慢,但學得比較全面、系統,而且記憶很深刻。

在自學Word期間,可以聽到旁邊的Excel班老師的講課內容。當時老師每天在講的內容都與股票資料相關,設定單元格格式、排序、篩選、函式、資料透視表等無一不是在操作股票資料,所以我誤以為Excel就是炒股票之用,毅然決定20天自學完Word後不再繼續學習Excel。現在想來,培訓班的Excel教材很可能是一位股票愛好者所寫,所以書中的一切資料都與股票相關,不知道除我之外,是否還有其他人也被誤導?

離開“恆輝電腦培訓班”後,我於2000年底購買了屬於自己的第一臺電腦,在出租屋裡自學電腦知識。當時是漫無目的地學習,今天Photoshop,明天AutoCAD,後天又PowerPoint。意外的是電腦才買了不到七天,出租屋被盜,電腦、手機都被人盜走,所以第一輪電腦學習道路就此終結。

雖然該機只是一臺二手電腦,但卻耗費了我足足半年的積蓄,無比傷感。

同時也感嘆一下東莞市的治安環境,無以言表……

經過以上事件後,我只能再次回到宣明會的免費電腦室學習,期間也曾報了打字班學習五筆輸入法。由於電腦培訓是員工福利,所以聽課和上機練習都免費。可惜的是上完10節課後,居然一分鐘只能打8個字,還不能保證準確率在90%以上。

打字班畢業後,我在書店無意間發現《電腦報》中的內容很有趣,書中關於安裝系統、解決疑難雜症的問答深深觸動了我,所以我又開始在宣明會的免費電腦室裡自學安裝系統、維護系統、修改登錄檔和了解控制面板設定等相關知識。由於電腦室中的電腦皆裝有自動還原軟體,所以學習期間不曾讓電腦留下後遺症。

半年後,我攢夠了一臺電腦的錢,又再次購買了一臺二手電腦,打算進修一下Photoshop

AutoCAD。為了安全起見,我不得不搬到一棟新樓,從一位湖南的二手房東那裡租得一個小單間,打算學成後可以換個工作,脫離流水線生活。

很悲劇的是,老天不曾降我大任,卻一直不斷地苦我心志、行拂亂我所為——在出租屋裡自學僅半個月,電腦再次被盜。經過了解,二手房東於半夜光景盜竊了整棟樓的所有晚班住戶,十幾家無一例外,房東用兩個卡車拖走了盜竊的物品,當然其中也包括我的電腦。

警察登記了所有人的失竊物品,只留下一句:“破案後會通知你們。”直到5年後我離開東莞去中山市工作時也沒有得到任何通知。再次感嘆一下東莞的治安……

轉機

2004年後,經“熟人”介紹,我進了一家鞋材廠工作(給了1000多元感謝費),由於前面所言的“三無”狀態仍未改善,所以到新廠後仍然只能在車間裡做一名普通員工,開了一年注塑機,臺灣人也稱之為啤機。

由於在新廠裡繼續發表一些評論文章,且被廠長和主任所留意到,所以當辦公室裡需要一個廠長助理時,我獲得了一個面試機會。

不過,和前面幾次面試並沒有分別,被最後一關擋在門外——當時廠長拿出一張車間每天使用的生產報表,讓我在Excel中設計同等效果的表格。這本是極簡單的工作,僅僅將紙上的文字錄入到表格中,然後對錶格新增邊框、合併單元格之類,但是由於沒有學過Excel軟體,所以10分鐘後也沒完成任務。這次面試以失敗告終。

不過,一個月後迎來了轉機,辦公室一直找不到合適的人選,廠長只能勉為其難地接受了我這個半罐水,讓我一邊工作一邊學習。

在那段工作期間,我的職務是NOS小組成員,類似於ISO小組的工作。工作中用得最多的軟體是PowerPoint,通過它製作會議報告,對Excel並沒有涉獵太多。不過在業餘時間我開始自學電腦硬體維修、自學FrontPage軟體設計網站、自學遠端控制以及動畫相簿等軟體。

這些自學成果對當時的工作幫助不大,但豐富了生活和興趣,同時為日後自學VBA和網路管理工作積累了很好的經驗。

起程

2006年,我轉入了廣東省中山市的一家鞋材廠工作,在新廠中主持全廠的稽核、盤點、培訓等工作。由於工作中需要大量使用Excel,所以在這段時間開始自學Excel,包括製表的基礎知識、函式與公式、圖表等技術。

20063月,辦公室電腦終於可以登入外部網了,眼界頓時開闊不少,不再總是形單影隻地獨立學習,可以和外界的網友交流,學習進度相比以前一日千里。

200634日,第一次登入Excelhome論壇,找到了志同道合的網友們一同探討Excel技術。

200636日,又註冊了另一個當時國內最大的Office論壇——OfficeFans

在以上兩個論壇中學會了Excel函式和圖表,2006年底榮升OfficeFans論壇之圖表區版主,20074月受ExcelHome論壇的邀請,成為ExcelHome論壇版主。以後的幾年中,又陸續成為ExcelTip等其他五、六個論壇的版主。

至此,終於開始正式踏足Excel領域。

補充:在中山市工作期間,再次買了一臺二手電腦,用於學習Excel<