還在“復制粘貼100遍”把工資表變成工資條嗎?
還在辛辛苦苦一一計算明細表里的數據,再手動輸入到月報表里交差?
還在一條一條查看應收賬款記錄,看到兩眼昏花,再一張一張手填催款單?
還在為了“做不完的表”,進行“加不完的班”?
這時候,就該讓Excel VBA出馬,用VBA程序將我們從那些大量的、重復性的工作中拯救出來,脫離加班的苦海。
讓工資表能夠“一鍵”秒變工資條。讓明細表數據能夠“一鍵”自動生成月報表。讓應收賬款記錄能夠“一鍵”批量生成催款單。
也許有朋友會說:Excel VBA根本不好用!我一早就買了幾本系統又全面的Excel VBA參考書自學,自測確實掌握了Excel VBA的使用方法和各種語法知識,可是做起工作來還是捉襟見肘,遇到問題,書里沒有提供具體程序代碼,我自己編寫不來!
這很容易理解。其實,“學會”Excel VBA語法基礎,卻仍然“不會”根據當前需要編寫VBA程序,這還真是一個普遍現象。
你看,“學會使用Excel VBA提高工作效率”其實應該分為兩個學習任務來解讀:第一,掌握Excel VBA基礎知識,其次,才是學會使用Excel VBA這一大殺器處理日常工作任務,提升工作效率。這我們需要精煉理論知識,徹底將其掌握,并在此基礎上學會編寫VBA程序的思路。
本書作為一本關于Excel VBA基礎知識及經典實例的書,正想解決這一尷尬情況。
本書的目的,是要讓零基礎的人都能輕松掌握用Excel VBA提升辦公效率的方法,不僅讓讀者通過本書掌握Excel VBA的理論基礎,更要讓讀者從書中領會VBA編程的思路,以便能夠從容應對工作中遇到的各種任務,利用Excel VBA輕松完成各種大量的、重復性的工作,并且感受到VBA編程展現出的魅力。
本書由靳瑞霞主持編寫,參與編寫和審校工作的還有魯世清、柴磊、寇志謙、朱云峰、丁丹、王曉娜、董純瑋、孫曉南、賈婷婷、劉霞、黃波、朱維、唐波和朱敬等。在本書編寫過程中,盡管我們的每一位團隊成員都未敢稍有疏忽,但紕繆和不足之處仍在所難免,懇請廣大讀者和專家不吝賜教,我們將認真聽取您的寶貴意見,您的反饋將是我們繼續努力的動力。
目 錄
第1章 Excel VBA,到底是什么 1
1.1 先來認識宏 2
1.1.1 什么是宏,宏有什么用 2
1.1.2 宏為什么不能工作了 2
1.2 宏的基礎操作 3
1.2.1 顯示“開發工具”選項卡 3
1.2.2 修改宏安全級 4
1.2.3 錄制宏,告別重復工作 5
1.2.4 保存宏的正確方法 7
1.2.5 運行宏,讓工作更輕松 7
1.3 讓執行宏更便捷 9
1.3.1 給宏設置快捷鍵 9
1.3.2 將宏指定給功能區按鈕 9
1.3.3 將宏指定給快速訪問工具欄按鈕 11
1.4 管理好你的宏 12
1.4.1 刪除宏 13
1.4.2 添加和使用加載宏 13
1.4.3 編輯與卸載加載宏 15
1.5 VBA,Excel里的編程語言 16
1.5.1 宏不能解決的問題 16
1.5.2 Excel VBA是什么 17
1.5.3 宏和VBA有什么關系 17
1.5.4 VBA編程,讓你享受自動化 18
第2章 編程第一步,認識Excel VBA 20
2.1 認識VBA的編程環境――VBE 21
2.1.1 程序保存在哪里 21
2.1.2 打開VBE窗口 21
2.1.3 主窗口 22
2.1.4 標題欄 23
2.1.5 菜單欄 23
2.1.6 工具欄 25
2.1.7 工程資源管理器 28
2.1.8 屬性窗口 29
2.1.9 代碼窗口 30
2.1.10 立即窗口 30
2.2 程序由什么組成 32
2.3 應該怎么寫VBA程序 33
2.3.1 添加和刪除模塊 33
2.3.2 動手編寫程序 34
2.3.3 導出和導入模塊 37
第3章 學習Excel VBA基礎語法 41
3.1 編程離不開語法基礎 42
3.2 字符集與標識符 42
3.3 VBA中的數據類型 43
3.3.1 數值型數據 43
3.3.2 字符串型數據 44
3.3.3 其他數據類型 45
3.3.4 數組類型 46
3.4 常量和變量,數據存儲容器 47
3.4.1 常量和變量 47
3.4.2 變量的聲明與賦值 48
3.4.3 常量的聲明與賦值 51
3.4.4 數組的聲明與賦值 51
3.5 集合、對象、屬性和方法 55
3.5.1 對象與集合 55
3.5.2 對象的屬性 56
3.5.3 對象的方法 56
3.6 運算符,VBA中的橋梁 57
3.6.1 算術運算符 57
3.6.2 比較運算符 58
3.6.3 連接運算符 59
3.6.4 邏輯運算符 60
3.6.5 運算優先級,決定運算順序 61
3.7 內置函數 61
3.7.1 VBA中的函數 61
3.7.2 輸入VBA函數 63
3.7.3 關于VBA函數的幫助 64
第4章 語法進階,基本語句構成與過程 66
4.1 VBA的基本語句結構 67
4.1.1 順序結構 67
4.1.2 循環結構 67
4.1.3 條件結構 68
4.1.4 循環:Do Loop語句 69
4.1.5 循環:While…Wend語句 70
4.1.6 循環:For…Next語句 70
4.1.7 判斷:If…Then語句 72
4.1.8 判斷:Select Case語句 74
4.2 其他VBA常用語句 76
4.2.1 跳轉:GoTo語句 76
4.2.2 合并:With語句 77
4.3 基本的程序單元,Sub過程 78
4.3.1 規范的保存過程 78
4.3.2 Sub過程的結構 79
4.3.3 聲明Sub過程 79
4.3.4 從另一個過程執行過程 80
4.3.5 過程的作用域 82
4.4 自定義函數,Function過程 83
4.4.1 Function過程的結構 83
4.4.2 聲明Function過程 84
4.4.3 在工作表中使用自定義函數 85
4.4.4 在VBA過程中使用自定義函數 87
4.5 養成好習慣,組織程序 88
4.5.1 排版代碼,讓代碼更優美 88
4.5.2 注釋代碼意圖 91
第5章 對象是門大學問 93
5.1 常用對象與對象模型 94
5.2 通過Application對象改造工作界面 95
5.2.1 Application對象的屬性 95
5.2.2 Application對象的方法 102
5.2.3 返回的子對象們 103
5.2.4 改造Excel工作界面 104
5.3 通過Workbook對象管理工作簿 112
5.3.1 用Workbooks聲明Workbook對象 113
5.3.2 ThisWorkbook與ActiveWorkbook 114
5.3.3 獲得Workbook的基本信息 115
5.3.4 創建工作簿 118
5.3.5 打開工作簿 119
5.3.6 激活工作簿 120
5.3.7 保存工作簿 120
5.3.8 關閉工作簿 122
5.3.9 設置工作簿打開密碼 123
5.3.10 保護工作簿結構 124
5.4 通過Worksheet對象操作工作表 126
5.4.1 聲明Worksheet對象 126
5.4.2 Sheets與Worksheets 127
5.4.3 新建工作表 128
5.4.4 刪除工作表 129
5.4.5 復制工作表 130
5.4.6 移動工作表 132
5.4.7 激活工作表 134
5.4.8 隱藏或顯示工作表 135
5.4.9 更改工作表標簽名稱 137
5.4.10 獲取工作表數目 138
5.5 通過Range對象操作單元格 139
5.5.1 認識Range對象 139
5.5.2 多種方法引用單元格 139
5.5.3 單元格的3個基礎屬性 154
5.5.4 選中單元格 157
5.5.5 選擇性清除單元格 158
5.5.6 復制單元格 159
5.5.7 剪切單元格 161
5.5.8 刪除單元格 162
5.6 其他常見的對象 163
5.6.1 通過Name對象定義名稱 163
5.6.2 通過Comment對象操作單元格批注 166
5.6.3 設置樣式美化表格 168
第6章 通過事件讓Excel自動響應你的行為 171
6.1 認識Excel事件 172
6.1.1 事件是什么 172
6.1.2 什么是事件過程 172
6.1.3 編寫事件過程 173
6.2 認識Workbook事件 174
6.2.1 Workbook事件該寫在哪里 174
6.2.2 常用的Workbook事件 174
6.2.3 Workbook事件列表 179
6.3 認識Worksheet事件 180
6.3.1 Worksheet事件該寫在哪里 180
6.3.2 常用的Worksheet事件 181
6.3.3 Worksheet事件列表 185
6.4 不是事件的事件 185
6.4.1 Application對象的OnKey方法 185
6.4.2 Application對象的OnTime方法 187
6.4.3 設置自動運行OnKey和OnTime過程 189
第7章 輕松實現與用戶交互 190
7.1 在工作表中使用控件 191
7.1.1 認識控件 191
7.1.2 表單控件和ActiveX控件的區別 192
7.1.3 在工作表中使用表單控件 192
7.1.4 在工作表中使用ActiveX控件 197
7.2 設計簡單的輸入輸出對話框 203
7.2.1 設計提示對話框 203
7.2.2 設計輸入對話框 212
7.3 構建窗體設計交互界面 218
7.3.1 添加用戶窗體 218
7.3.2 設置窗體的屬性 220
7.3.3 在窗體上添加控件 221
7.3.4 添加事件過程 224
7.3.5 用鍵盤控制控件 228
7.3.6 顯示窗體 231
7.3.7 關閉窗體 234
第8章 代碼的調試與優化 235
8.1 認識VBA中的錯誤 236
8.1.1 VBA程序的3 種模式 236
8.1.2 VBA中可能發生的3種錯誤 236
8.2 使用調試工具 238
8.2.1 使用F8鍵單步執行程序 239
8.2.2 使用Esc鍵手動中斷程序 241
8.2.3 為程序設置斷點 242
8.2.4 使用Stop語句設置“斷點” 243
8.2.5 使用Debug.Print語句檢查變量值 244
8.2.6 在中斷模式下查看變量的值 245
8.2.7 使用本地窗口檢查變量 246
8.2.8 使用監視窗口觀察變量 247
8.3 使用On Error語句處理錯誤 250
8.3.1 On Error GoTo 250
8.3.2 On Error Resume Next 251
8.3.3 On Error GoTo 0 252
8.4 優化代碼Run更快 254
8.4.1 合理使用變量 254
8.4.2 簡化反復引用相同的對象 254
8.4.3 盡量使用內置函數完成計算 256
8.4.4 合理使用數組 256
8.4.5 關閉屏幕更新 258
8.4.6 將宏代碼去蕪存菁 258
第9章 行政與文秘管理實例 260
9.1 交互式錄入:檔案索引表 261
9.1.1 效果:交互式錄入信息 261
9.1.2 第一步:利用Worksheet_BeforeDoubleClick事件 264
9.1.3 第二步:構建循環框架設計交互錄入過程 265
9.1.4 第三步:自定義函數過程設計輸入對話框 267
9.2 使用表單控件:資料借閱管理表 272
9.2.1 效果:使用控件登記與查詢信息 272
9.2.2 第一步:添加表單控件 276
9.2.3 第二步:設置控件格式 278
9.2.4 第三步:為控件添加程序 280
第10章 人力資源管理實例 287
10.1 使用ActiveX控件:工作天數統計表 288
10.1.1 效果:使用控件自動計算工作天數 288
10.1.2 第一步:添加ActiveX控件 289
10.1.3 第二步:設置控件格式 290
10.1.4 第三步:為控件添加程序 292
10.2 使用控件:工作能力和態度考核系統 295
10.2.1 效果:自動計算考評結果 295
10.2.2 第一步:制作“工作能力和態度評定表” 297
10.2.3 第二步:制作“工作能力和態度評定結果表” 301
10.2.4 第三步:編寫VBA程序指定給“按鈕”控件 304
第11章 財務與會計管理實例 311
11.1 使用表單控件:應收賬款月報表系統 312
11.1.1 效果:使用控件自動生成月報表 312
11.1.2 第一步:制作基礎表格 314
11.1.3 第二步:添加“按鈕”控件生成本年度銷售明細表 316
11.1.4 第三步:添加“按鈕”控件生成月報表 321
11.2 使用表單控件:催款單批量生成系統 326
11.2.1 效果:使用控件自動生成月報表 327
11.2.2 第一步:制作基礎表格 329
11.2.3 第二步:添加“按鈕”控件批量生成催款單 330
11.2.4 第三步:添加“按鈕”控件批量刪除催款單 336
第12章 市場與銷售管理實例 341
12.1 交互式輸入:指定月份自動創建銷售分析圖表 342
12.1.1 效果:交互式輸入指定月份創建圖表 342
12.1.2 第一步:編寫VBA程序 343
12.1.3 第二步:添加“按鈕”控件生成本年度銷售明細表 346
12.2 交互式輸入:指定日期自動創建折線圖 349
12.2.1 效果:交互式輸入指定日期創建圖表 350
12.2.2 第一步:添加“按鈕”控件自動創建折線圖 352
12.2.3 第二步:添加“按鈕”控件刪除圖表和輔助工作表 358