編輯推薦
與眾不同,獨樹一幟;讀者視角,全新解讀。
每一個疑難案例,都源於網友現實的疑惑和睏擾;
每一個解決案例,皆來自高手精妙的思路和講解。
《Excel 2013 VBA編程與實踐》讀者對象包含兩類:一:工作中涉及大量數據運算的用戶,通過VBA可以簡化操作步驟,提升運算效率。工作中數據越多越能體現本書的優勢。二:有VBA基礎想進一步提升VBA開發技術者。本書涉及VBA開發的方方麵麵,可為VBA愛好者提供更多的開發思路。
海報:
內容簡介
《Excel 2013 VBA編程與實踐》為讀者展示Excel VBA編程的實戰技巧,包括工作中最常用的查詢、定位、格式轉換、報錶拆分與閤並、開發自定義函數、處理文件與文件夾、功能區設計,以及插件開發實戰與原理分析。本書側重於解決問題和展示解題思路,案例包含諸多常見疑難的解決方案。閱讀本書後,讀者可以解決工作中的諸多疑難雜癥,大大提高工作效率,且有助於提升編程能力,拓展思路,將理論嚮實戰邁進。
好的代碼應該同時具備準確、糾錯、兼容和效率四個特性,本書所有的案例都在準確性與高效性的基礎上提供完善的錯誤處理措施與思路講解。
《Excel 2013 VBA編程與實踐》包括205個實用案例和一個大型綜閤應用――開發送貨單套打程序係統。書中的每個案例采取疑難描述、解決方案、操作方法、原理分析和知識擴展五個步驟進行講解,力圖在解決問題的同時讓讀者可以通曉其思路和原理。
讀者在學習本書的同時,如果配閤VBA入門圖書《來吧,帶你玩轉Excel VBA》或者《Excel VBA程序開發自學寶典(第3版)》學習,將會取得更好的效果。另外,本書附贈瞭書中所有的案例文件與源代碼,讀者可到網上下載學習。
作者簡介
黃朝陽,網名apolloh,ExcelTip.net站長,微軟全球最有價值專傢(MVP)。擁有十多年豐富的企業信息化實踐和管理經驗,精通Excel和MS SQL在企業中的應用。早期曾在多個Office技術社區擔任版主,參與過多部Excel暢銷書的編著工作。
羅剛君,網名andysky,ExcelTip.net技術社區版主,多個Office技術社區資深版主,從事Excel軟件研究與寫作多年,精通Excel VBA與函數、圖錶。在公司擔任電腦技術管理,對辦公應用有較豐富的實戰經驗和心得。目前已經齣版過13部Excel相關著作。
章蘭新,網名zlxtl,ExcelTip.net技術社區版主,多個Office技術社區資深版主,
擁有十多年豐富的政府信息化實踐、管理和組織實施經驗,精通Excel和MSSQL在管理中的應用。長期在政府財政經濟部門實施電腦技術與管理、統計、數據分析相融閤的工作,一直緻力於推廣Excel和數據庫技術,對辦公應用有極豐富的實戰經驗和心得。
陳國良,網名gouweicao78,微軟全球最有價值專傢(MVP),ExcelTip.net技術社區總版主,多個Office技術社區資深版主,從事公路、鐵路工程建設管理十多年,精通Excel函數與公式,具有豐富的實戰經驗,參與過多部Excel暢銷書的編著工作。
目錄
第1章 基礎理論 1
1.1 變量、常量與數據類型 1
疑難1 正確地定義變量和數據類型有何優勢 1
數據類型與對象類型 5
疑難2 公共變量和靜態變量都有何用處 6
1.2 程序防錯要點 8
疑難3 常見的代碼錯誤由哪些原因造成 8
疑難4 如何偵測代碼齣錯,並將運行代碼的錯誤原因發給作者 12
疑難5 如何開發完善的程序 14
1.3 練習與思考 18
第2章 數據查找技巧 19
2.1 快速查找 19
疑難6 能否按範圍批量查找數值 19
疑難7 能否將符閤多條件之一的所有數據提取到新錶中 22
判斷工作錶是否存在的方法 23
疑難8 可否按格式查找單元格,然後替換其格式 25
FindFormat的使用技巧 26
疑難9 如何找齣A綫的不達標人員信息 27
單列多條件與多列多條件篩選的區彆 29
疑難10 如何查找所有的“#”並標識為上標 29
定位單元格任意字符的方法 30
疑難11 如何找齣還款時間超過一年及未還款的客戶信息 31
日期函數Datedif的特性 32
疑難12 可以將查找到的所有數據串連並寫入剪貼闆中嗎 33
疑難13 可以創建一個工具欄來方便查找嗎 35
如何區分精確匹配與模糊匹配 37
疑難14 能否按相似度查找所有的數據 37
利用Array嚮區域中一次性寫入多個常量 39
疑難15 如何在具有閤並單元格的區域中多條件逐步查找 40
通過“MergeArea”屬性返迴閤並區域 41
疑難16 如何查找成績並分批發送郵件 42
VBA中郵件正文的換行符錶示法 43
疑難17 如何在輸入時逐步查找 44
通過KeyUp事件自動執行查詢 46
2.2 跨錶查找內容 47
疑難18 能否將所有錶中的完成目標者匯總到“總錶” 47
利用SpecialCells定位實現快速查找 48
疑難19 查找每月産量冠軍名單,在窗體中羅列顯示 49
不采用循環,一次性找齣最大值所在行 50
疑難20 如何找齣工作簿中所有的外部鏈接且將它們轉換成值 51
如何獲取工作簿中的外部鏈接 52
疑難21 可否模糊查找所有部門的電話信息 52
Target與Activecell的區彆 54
疑難22 如何實現將所有未收貨款者在狀態欄隨機顯示 54
利用OnTime定時執行程序 56
疑難23 可否在單元格中創建多級下拉菜單 56
ActionControl對象的功能與限製 60
疑難24 可否在文件夾的所有文件中查找特定信息並匯總到新錶 60
疑難25 如何統計文件夾中所有的成績工作簿中不及格人數 64
調用工作錶函數時應如何書寫區域引用型參數 65
2.3 文件查找與轉換 66
疑難26 如何判斷指定的文件是否存在 66
判斷文件是否存在的函數 67
疑難27 如何進行深度查找且創建文件目錄 68
疑難28 可否在工作錶中羅列齣所有大於5MB的文件 70
疑難29 如何將所有的Word文件轉換成PDF文件 72
疑難30 如何將xlsm和xlsx格式的所有文件轉換成xls格式 76
疑難31 如何在網上鄰居的共享盤中查找並打開“單價錶” 78
疑難32 如何實現全盤查找且播放音樂文件 79
疑難33 能否在文件夾的所有工作簿中執行批量替換 81
疑難34 能否根據成績錶和模闆生成Word成績通知單 84
2.4 圖片查找與引用 87
疑難35 如何瞬間刪除當前錶中藝術字和圖錶等以外的圖片 87
DrawingObjects與Shapes對象的區彆 89
疑難36 可以將簽名圖片復製到錶中所有的簽名處嗎 89
復製圖形對象與復製數據的區彆 90
Selection代錶什麼 90
疑難37 如何像vlookup引用數據一樣引用圖片 91
循環彈齣對話框直接到用戶正確操作為止的編程思路 93
疑難38 能否對材料錶分頁且調用材料圖片 94
2.5 練習與思考 97
第3章 數據處理 98
3.1 按條件定位的技巧 98
疑難39 如何一次性定位産量大於1000的所有單元格 98
使用定位技術減少循環語句的循環次數 99
疑難40 可否全選至少三科不及格的學生姓名 100
通過SpecialCells定位錯誤值 103
疑難41 工作錶中所有的錯誤值是否可隱藏起來 102
疑難42 能否定位數值區域並轉換成以“萬”為單位 104
VBA中如何處理雙引號 105
疑難43 如何定位當前錶的最大值或最小值 105
調用工作錶函數並配閤Find方法查找最大值 107
疑難44 能否定位並標識高於平均值的單元格 107
VBA中數字、漢字的大小關係 109
疑難45 如何反嚮選擇工作錶區域 109
輔助區的重要性 110
3.2 數據處理及格式轉換 111
疑難46 能否一鍵對選區橫嚮、縱嚮匯總 111
“R1C1”引用方式的優點 112
疑難47 如何將單詞在大寫、小寫與首字母大寫間任意切換 113
利用StrConv函數對英文進行大寫、小寫和首字母大寫轉換 114
疑難48 如何將二維的材料錶轉換成一維錶 115
使用數組函數Array簡化代碼 116
疑難49 如何開發一個通用的一維錶轉二維錶的工具 117
對數組和區域中的值去除重復值時的區彆 120
疑難50 如何開發一個通用的二維錶轉一維錶的工具 121
疑難51 可否將字符串中的字母、數字和漢字分離到多單元格中 124
利用Like運算符區分漢字、數字和字母 125
疑難52 能否一鍵轉換錶達式為計算結果 126
通過Evaluate方法轉換錶達式 127
疑難53 數據有效性可以設置為關聯的三級下拉選單嗎 127
疑難54 能否將職工信息按自定義序列排序 130
新舊版本中Sort的差異 131
疑難55 可以不打開工作簿而提取其數據嗎 132
在VBA中調用公式實現從未打開的工作錶中取值 134
疑難56 可否一鍵保護所有的公式 134
切換Locked 屬性實現公式保護 135
疑難57 如何實現發票金額分解 136
MID取文本的特點 137
疑難58 VBA可以破解工作錶密碼嗎 138
錶的分類 139
疑難59 如何將不規範的時間統一為“hh:mm:ss.00”格式 139
Format與Text函數的相同點和不同點 141
疑難60 可以生成指定範圍的不重復隨機數嗎 141
Collection對象的優勢 142
疑難61 如何對工作簿減肥 143
文件虛胖的常見原因 144
疑難62 可否讓數字在文本與數值之間快速切換 145
在文本與數值間切換的VBA思路 146
疑難63 如何將“/”分隔的數據進行匯總 147
以“/”為分隔符取其左右字符的思路優化 148
疑難64 可否一鍵刪除工作錶中所有的空白行 148
SpecialCells方法的限製 150
疑難65 能實現粘貼數據時跳過隱藏區嗎 150
如何確定單元格是否被隱藏 153
疑難66 可否讓單元格的值真正地四捨五入 153
疑難67 如何對相同值進行標識著色 155
ColorIndex屬性的限製對VBA代碼的影響 157
疑難68 如何根據工資計算零鈔數量 158
獲取選區第一列及已用區域的交集 160
疑難69 可否將職工資料錶一鍵轉換成打印格式 160
如何計算圖片所在單元格的地址 162
3.3 單元格閤並技巧 162
疑難70 能否一鍵閤並相同且相鄰的所有單元格 162
利用DisplayAlerts屬性關閉閤並單元格時的提示加快代碼執行速度 164
疑難71 如何實現按産品閤並産量數據錶 164
利用變量暫存數據,代替輔助區 166
疑難72 能否改進“跨越閤並”,使其居中保留所有的數據 166
Merge方法的真正功能 167
疑難73 可以閤並同類項且分類匯總嗎 168
通過選擇性粘貼格式實現閤並單元格 170
疑難74 如何實現閤並時保留所有的數據,而拆分時還原數據 171
看不見的特殊字符的應用 173
疑難75 如何一鍵選擇所有閤並的單元格 174
定位閤並單元格 175
查找設置對下一次查找結果有何影響 175
疑難76 如何取消所有的閤並區域,並對所有的單元格填充數據 175
閤並區域的賦值方式 176
疑難77 能否實現撤銷閤並後能還原所有數據的多單元格閤並 177
閤並單元格後再取消閤並不丟失數據的思路 178
疑難78 如何將指定的單元格閤並到一個選區 178
將指定單元格鏈接到一個選區 180
疑難79 可以讓閤並單元格自動換行嗎 180
工作錶簿件代碼與普通過程的區彆 182
3.4 報錶閤並與拆分 183
疑難80 如何閤並所有工作錶的數據到一個錶中 183
在復製數據時既去除公式,又不影響數值的顯示狀態 185
疑難81 如何實現多錶閤並匯總 185
利用相對引用公式批量閤並數據,避免使用循環 187
疑難82 如何將多個工作簿中的所有工作錶閤並到一個工作錶中 187
通過禁用工作簿重算提升代碼效率 190
疑難83 如何將多個工作簿數據閤並到一個工作簿 190
利用變量作為輔助進行條件判斷 194
疑難84 如何實現按條件將單個工作錶拆分成多個工作錶 194
Range.AutoFilter方法的特殊性 198
疑難85 如何將工作簿中的每個工作錶轉換為獨立工作錶 198
在不同的Excel版本中如何選擇文件格式 200
3.5 單元格顔色的綜閤應用 201
疑難86 不同版本的Excel在顔色處理方麵有區彆嗎 201
不同的版本中顔色差異對程序的影響 202
疑難87 可以在Excel 2013中按顔色篩選再做擴展嗎 203
CurrentRegion與Usedrange對程序的影響 206
疑難88 如何實現將顔色排序 207
藉用輔助區和調用老版本的Sort功能提升程序的通用性 208
疑難89 可以按顔色對選區的數據分類匯總嗎 209
修改顔色不觸發公式重算和任何VBA事件 211
疑難90 如何用函數對單元格的背景和字體按顔色匯總 212
如何聲明可選參數 214
3.6 重復數據處理 214
疑難91 可否清空重復值所在單元格並以背景色標示 214
Countif函數的限製 216
疑難92 可用紅圈標示重復齣現的數據嗎 217
疑難93 如何提取兩列數據中的相同項與不同項 219
利用Transpose函數實現區域轉數組 220
疑難94 可否一鍵刪除重復行 221
Range.RemoveDuplicates方法中Columns參數的限製 222
3.6 練習與思考 223
第4章 報錶打印 224
4.1 打印設置 224
疑難95 如何一次性設置“總錶”以外工作錶的頁腳 224
選擇工作錶數量對頁腳的影響 225
疑難96 可否將所有工作錶的打印區域設置為有數據的區域 225
更新打印區域設置的限製 227
疑難97 可否將訂單錶轉換成每10行打印一頁 228
全自動批量插入分頁符 230
疑難98 如何讓跨頁的閤並單元格在打印後能完整顯示 229
判斷閤並單元格是否跨頁 232
4.2 特殊打印格式設計 231
疑難99 如何製作工資條 232
疑難100 如何打印工資卡 234
疑難101 VBA可以實現對工作錶分頁小計嗎 237
利用宏錶函數Get.Document(50)獲取工作錶頁數 242
疑難102 如何同時打印頂端標題和底端標題 241
計算第一個分頁符所在的行號 249
疑難103 可以藉用圖片實現底端標題打印嗎 248
Export與API方式將區域轉換成圖片的差異 251
疑難104 可否將訂單錶轉換成適閤針式多聯打印的報錶格式 251
修改CopyObjectsWithCells屬性實現復製數據時忽略圖形對象 254
疑難105 如何實現雙麵打印 254
疑難106 可以隻打印活動單元格所在頁嗎 255
如何計算分頁符位置和當前頁的序號 257
4.3 思考與練習 257
第5章 藉用事件讓程序自動化 258
5.1 工作錶事件 258
疑難107 錄入M2和M3時可自動將2或3顯示為上標嗎 258
Target與ActiveCell的相同與不同點 259
疑難108 可否錄入産品規格時自動在右邊顯示錶達式的值 260
修改EnableEvents屬性避免事件的連鎖反應 261
疑難109 可否實時記錄指定區域的修改記錄 262
讓批注框自動調整大小的必要步驟 264
疑難110 能否雙擊首行或首列時彈齣工作錶目錄 264
工作錶事件與工作簿事件的分彆 265
5.2 工作簿事件 266
疑難 111 能否在啓動工作簿時自動創建工作錶目錄 266
Workbook_Open事件與Auto_open宏的相同點和不同點 267
疑難112 進入包含“貨款”的工作錶時可語音提示未收款客戶名稱嗎 268
DateDiff函數與DateDif函數的相同和不同點 269
疑難113 能否自動記錄工作簿的已打印次數 270
BeforePrint事件的缺陷 271
疑難114 輸入重復的工號時能否提示“已重復” 271
創建讓用戶指定執行方式的對話框的三種方法 273
疑難115 能否在狀態欄顯示選區中的最大值和最小值地址 273
工作錶函數Counta的參數應如何對待Range對象的默認屬性值 275
5.3 應用程序事件 275
疑難116 可否讓新建的工作簿包含“進庫”、“齣庫”和“異常統計”三個工作錶 275
藉助類實現應用程序級的事件 277
安裝加載宏的兩種方法 278
疑難117 可否新建圖錶時默認顯示為圓角加陰影效果 279
工作簿級與應用程序級的圖錶事件差異 280
疑難118 可否選擇單元格時整行與整列自動著色 280
引用活動窗口的可見區域 282
5.4 思考與練習 283
第6章 開發自定義函數 284
6.1 自定義函數基礎 284
疑難119 如何開發自定義函數 284
如何跨工作簿調用自定義函數 288
疑難120 自定義函數在不同的版本中有何差異 288
顔色對自定義函數的影響 289
函數參數的數量上限 291
疑難121 如何對自定義函數添加功能描述與參數說明 291
通過Application.MacroOptions方法為自定義函數添加參數說明 292
6.2 開發自定義函數 293
疑難122 如何對區域內混雜字符串中的數字求和 293
Excel公式對“+”的處理方式 294
疑難123 如何分離字符串中的數值、英文和漢字 294
正則錶達式在字符處理中的優勢 295
疑難124 如何將文本混雜字符串及錶達式轉換為值 296
正則錶達式中如何錶示數字、字母和漢字範圍 297
疑難韆尋韆解叢書 Excel 2013 VBA編程與實踐 下載 mobi epub pdf txt 電子書