重磅 | Excel VBA解讀:Range對象篇
我們在Excel中整理、分析和處理數據時,都是圍繞單元格進行大多數操作,因此Range對象是Excel VBA中最常用的對象,也是最重要的對象。在《ExcelVBA解讀》系列第2季中,我們詳細講解了Range對象的大多數方法和屬性,現整理於此,以饗讀者。
在這裡,我們匯總了《ExcelVBA解讀》系列第2季的目錄並介紹了每篇文章的主要內容,同時對每篇文章進行了鏈接(只要你點擊標題即可轉入相應的文章頁面),方便有興趣的讀者查找並學習相應的內容。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=201581972&idx=1&sn=6f5a4cd067ab543db4e8b25bfa451589&scene=21#wechat_redirect">30.開始掌握Excel對象模型
回顧了在《ExcelVBA解讀》第1季中初步介紹的Excel對象模型以及一些Range對象和屬性,粗略介紹了接下來的文章中要詳細講解的內容。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=201787520&idx=1&sn=bb2cc8a8bee35f8d81ed23440ab93a1a&scene=21#wechat_redirect">31.Range對象——從選取單元格說起
選取單元格是最基本的操作。本文詳細介紹了選取單元格或單元格區域的Select方法和確定當前活動單元格的Activate方法,以及它們之間的差別。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=204195164&idx=1&sn=70cb5674f3a13791d63fc6f01f81575c&scene=21#wechat_redirect">32.到達想要的單元格——Offset屬性
詳細地講解了Range對象的Offset屬性,包括該屬性的作用、語法及參數說明,以及一些幫助理解該屬性的代碼和示例,優化了前面文章中的員工管理系統代碼。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=205622716&idx=1&sn=1c43ee55cc9e62042a30a5f77279d700&scene=21#wechat_redirect">33.裝修匠來了——初步應用單元格格式
為方便後續文章中示例的講解,本文簡要地介紹了VBA中一些對單元格字體和背景進行格式化的操作,包括:操作Font對象(Bold屬性、Name屬性、Color屬性、ColorIndex屬性等)設置單元格中的字體屬性,操作Interior對象(Color屬性、ColorIndex屬性)設置單元格背景色。(使用GRB函數組合出不同的顏色)
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=207449468&idx=1&sn=390ded2dd7ab93dc07650bd9fea21a28&scene=21#wechat_redirect">34.找到單元格所在的行號——Row屬性和Column屬性
回顧了前面介紹的Rows屬性和Columns屬性,詳細講解了Row屬性及示例代碼。Column屬性用法類似。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=210149187&idx=1&sn=d0775a553ed774128fec2ade920e8625&scene=21#wechat_redirect">35.對單元格進行統計——Count屬性
詳細講解了用來獲取單元格數或者行列數的Count屬性。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=211383921&idx=1&sn=2fabf1fbe8e17ee552398019b96434f3&scene=21#wechat_redirect">36.快速移動單元格——End屬性
詳細講解了在單元格區域中大範圍移動的End屬性:包括End屬性的語法及說明,示例代碼及獲取最後一行的通用代碼,進一步優化了前面文章中的員工管理系統代碼。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=402136150&idx=1&sn=0f86e5edc88828339ea95cb767b5e362&scene=21#wechat_redirect">37.單元格的擴張——Resize屬性
詳細講解了基於給定的單元格或單元格區域擴展或縮小單元格區域的Resize屬性:包括Resize屬性的語法及說明、示例代碼。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=403427903&idx=1&sn=9ed031a0c7e91628fe3d5a00c16ae416&scene=21#wechat_redirect">38.快速確定自已的地盤——CurrentRegion屬性
詳細講解了快速獲取當前單元格所在區域的CurrentRegion屬性,試驗了該屬性在不同情形下所獲取的具體區域,給出了兩個示例。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911558&idx=1&sn=91af885def3aca0504896954e4e4fdfb&scene=21#wechat_redirect">39.快速確定工作表中已使用的區域——UsedRange屬性
詳細講解了獲取工作表已使用區域的UsedRange屬性,試驗了該屬性在不同情形下所獲取的具體區域。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911565&idx=1&sn=39aeefefc9dd70a650a11bc03c55c3a7&scene=21#wechat_redirect">40.告訴你單元格住哪兒——使用Address屬性獲取單元格地址
詳細講解了Address屬性的語法及參數說明,演示了設置不同參數時所獲取的地址形式。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911573&idx=1&sn=7ed3d0ef4b596baa8ef4d81b069f760f&scene=21#wechat_redirect">41.藏得再好也能找到——使用Find方法實現查找
通過示例演示了Range對象的Find方法,詳細講解了Find方法的語法和參數說明,並講解了相關方法:FindNext方法和FindPrevious方法的使用及示例。(這些方法在代碼中非常有用,值得花時間理解)
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911579&idx=1&sn=498f2881a40a129d74b90c095f107b72&chksm=84873cdcb3f0b5ca912fdb16edd6b30e507d6147bc342dd4baca3e77b3fbd2beec1c20deb0c0&scene=21#wechat_redirect">42.學生管理系統開發V1.3
進一步完善前面文章中的學生管理系統:使用了動態名稱來定義數據有效性,從而實時更新數據,然後利用Find方法查找指定的數據內容並自動填充相應單元格。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911585&idx=1&sn=910fceb4ac714032b256ccdd58047ef6&chksm=84873ce6b3f0b5f0804a8539951b96c79f91d7ade46c02dd605bade656a64de68478748a36fa&scene=21#wechat_redirect">43.快速定位到特定的單元格——SpecialCells方法
詳細講解「定位條件」對話框中的選項在VBA代碼中的實現,即SpecialCells方法的語法及參數說明,給出了一個示例:查找最後的單元格。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911591&idx=1&sn=9203033369ddb2a7fe4abb3e6a5120d0&chksm=84873ce0b3f0b5f6cd5f917f1af254d31b0110a9947e903c8c8c1870506ab5475364131903b8&scene=21#wechat_redirect">44.將單元格聯合起來——Union方法
講解了將不同的區域組合成一個區域的Union方法,給出了一個示例:查找並獲取工作表中指定內容的所有單元格。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911599&idx=1&sn=31fe1f1e0dd9eccfca2fc42f81101a94&chksm=84873ce8b3f0b5fe930ec2edd37adc099b9a271478e69dd7e87174a44df94da8015b538b6690&scene=21#wechat_redirect">45.查找重疊的單元格區域——Intersect方法
講解了能夠獲取單元格區域中重合部分的Intersect方法,給出了2個應用示例:①判斷兩個單元格區域是否有重疊、②用VBA實現保護單元格功能。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911612&idx=1&sn=03587eb8ebbdbd94abc5f046689b756f&chksm=84873cfbb3f0b5edd85d570b3f130843dad74946d669fdd54f0c4a5e427ae817851ca8981393&scene=21#wechat_redirect">46.選取非連續的單元格區域——Areas集合
詳細講解了代表工作表中所選取的由一塊塊單元格區域組成的非連續區域的Areas集合對象的使用,給出了2個示例:①為不同單元格區域(或者根據條件)設置不同的背景色、②將工作表中的常量區域的背景色設置為紅色(將Areas集合與SpecialCells方法結合使用,為我們操作特定區域提供了一種新思路)。此外,還補充講解了如何表示單元格區域中的單元格。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911636&idx=1&sn=748f2feabe8190a27f77ae8bb3dafdde&chksm=84873c13b3f0b505cbca06c5d37e15834dba6e6f1aef25ed70bd80839dc8327578c475da3ccd&scene=21#wechat_redirect">47.獲取整行或整列——EntireRow屬性和EntireColumn屬性
介紹了代表指定單元格所在的整行或整列的EntireRow屬性和EntireColumn屬性,給出了兩個示例:隱藏空行、高亮顯示當前單元格所在的行和列。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911652&idx=1&sn=4bb92ed6187f03ab93e2963dd30f2692&chksm=84873c23b3f0b535e37212a6011b9b71032c14cafbc843ac615f36dba4d598c12b70edcf72b0&scene=21#wechat_redirect">48.使用VBA找到想要的單元格——小結
對前面講解的找到想要的單元格的屬性或方法進行小結,以助於讀者加深對這些屬性或方法的理解。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911675&idx=1&sn=e4762bdb5dbfa5b3ce938163ad506d12&chksm=84873c3cb3f0b52ad9bbcbf68ec8bf3b782b3bc86a9b91fd78dcb7e2262777ac0bc2a9fa6938&scene=21#wechat_redirect">49.複製或剪切單元格——Copy方法與Cut方法
詳細介紹了如何在VBA中實現Excel中最頻繁使用的複製或剪切操作,即使用Copy方法和Cut方法,包括它們的語法及參數說明、使用情形等。給出了2個示例:①查找滿足條件的數據並將相關數據複製到指定區域、②複製特定的數據到指定區域。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911698&idx=1&sn=8e47c7c38013fc577e3637665c268ae4&chksm=84873c55b3f0b543ae7a9cdbbfddef845c93aaf38600475c0b8452ef10ecf3ab69176fc65f0f&scene=21#wechat_redirect">50.選擇性粘貼——PasteSpecial方法
詳細講解了如何在VBA中使用Range對象的PasteSpecial方法進行粘貼操作,包括PasteSpecial方法的語法及詳細參數說明。給出了5個示例:①只粘貼格式而不粘貼值、②只粘貼值、③粘貼值並保持列寬、④對粘貼的區域進行運算、⑤將行列轉置。同時,指出了使用粘貼時容易出錯的2點陷阱。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911732&idx=1&sn=5aab833c552b57b05ef1d1347b761464&chksm=84873c73b3f0b5651d269bfed46e75e5c6b05407ba9810d9e92128b49ca04af994572ab2b585&scene=21#wechat_redirect">51.替換——Replace方法
詳細講解了VBA中實現數據替換的Replace方法,包括該方法的語法及詳細的參數說明,並給出了2個示例:①用不同的值同時替換不同的區域、②替換格式(FindFormat屬性和ReplaceFormat屬性)。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911763&idx=1&sn=ddcd7ceb1d28e9a49d901249c864ccf5&chksm=84873b94b3f0b282e512ace5fcb821bccfe3712be6e832e3202e179af317b531d776af5d71ef&scene=21#wechat_redirect">52.自動篩選—AutoFilter方法
詳細講解了在VBA中實現自動篩選功能的AutoFilter方法,包括該方法的語法及詳細的參數說明,並提供了6個有用的示例:①移除自動篩選提供的下拉箭頭、②一次執行多個列欄位的篩選、③複製篩選結果、④刪除篩選出的數據(AutoFilterMode屬性、Delete方法)、⑤根據當前單元格內容篩選數據、⑥根據當前單元格內容實時篩選數據並將數據粘貼到指定位置。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911797&idx=1&sn=725edc6075513d4ea54bae55c302a76a&chksm=84873bb2b3f0b2a47d9e52810decbcbf8590d893e6adc830fa55ee3a614eff149a4dfacfbfc0&scene=21#wechat_redirect">53.高級篩選——AdvancedFilter方法
詳細講解了在VBA中實現高級篩選功能的AdvancedFilter方法,包括不同情形下的篩選技巧、AdvancedFilter方法的語法及參數說明,並提供了5個實用的技巧示例:①獲取不重複值、②獲取兩列或多列組合後的不重複值、③根據條件區域篩選、④設置邏輯條件篩選(不同組合代表的邏輯、使用公式作為篩選條件)、⑤找出兩列中不相同的內容(Clear方法)。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911832&idx=1&sn=b4b91be141767f9ad2291b589fe261d0&chksm=84873bdfb3f0b2c993eff3955833d745b28e718ba5c9b01d594a09eeccafee96a3d31d129034&scene=21#wechat_redirect">54.排序——Sort方法
詳細講解了VBA中Sort方法的語法及參數說明,提供了7個技巧示例:①查找滿足某項條件的所有數據並按順序排列、②查找滿足某項條件的不重複數據(與高級篩選組合)、③雙擊列標題自動排序、④根據活動單元格排序、⑤根據顏色排序(ClearContents方法)、⑥排序有部分相同數據的行、⑦自定義排序(介紹了Application對象的AddCustomList方法、GetCustomListNum方法、DeleteCustomList方法)。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911868&idx=1&sn=64b9b4a5f74d05a59e00e29e016926b4&chksm=84873bfbb3f0b2ed1f6458e2c101ed5815be09934199413ae2a4b265b6228c1ba1dbef63c831&scene=21#wechat_redirect">55.在VBA中使用公式1——Formula屬性和FormulaR1C1屬性
首先介紹了Excel中的A1引用樣式和R1C1引用樣式,然後講解Range對象的Formula屬性和FormulaR1C1屬性的代碼及相關說明,以及在VBA中使用R1C1樣式公式的優點及相應的例子。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911907&idx=1&sn=16961eb32bdfb989af3b6c3c20d7d732&chksm=84873b24b3f0b232dee82fe6dda7672819f39f94f136e32ec8386e34d4b0b4fa19357d4dab1e&scene=21#wechat_redirect">56.在VBA中使用公式2——FormulaArray屬性及相關屬性
講解了在VBA中使用FormulaArray屬性輸入數組公式的代碼,給出了一個實用示例:匯總每類水果的銷售額(結合AdvancedFilter方法實現)。接著講解了相關屬性:FormulaHidden屬性、HasFormula屬性、HasArray屬性。最後提供了3個應用示例(含技巧):①找出兩列中不相同的內容(IsError函數)、②快速填充單元格區域中的空單元格、③查找數據並計算(公式中有變數時的正確書寫方式)。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650911956&idx=1&sn=b59430cfbdb22732bd52e50428b412c3&chksm=84873b53b3f0b245c02fa61ed85ddc8c8b43196bb2c7d2c2ed151488f1b5c250733c17a07fb7&scene=21#wechat_redirect">57.自動填充單元格——AutoFill方法
講解了在VBA中實現自動填充單元格的AutoFill方法,包括語法及參數說明,並提供了6個實用技巧示例:①使用代碼在列中輸入序號、②自動更新列中的序號、③按自定義列表填充、④自動填充月份、⑤自動填充工作日、⑥自動填充公式。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912019&idx=1&sn=7da8eb0091633c59bf549f639dd33c38&chksm=84873a94b3f0b382426f070192fe5f08415b61236cbbd169bbf67aabdde045577747eb5e81ba&scene=21#wechat_redirect">58.填充——FillDown方法
詳細講解了VBA中實現單元格向下填充的FillDown方法,提供了2個示例:①自動填充公式、②用空單元格上方的單元格數據填充單元格區域中的空單元格,並介紹了相關的FillUp方法、FillLeft方法、FillRight方法。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912077&idx=1&sn=730399b7e3603ef5cfc97532c5a12af0&chksm=84873acab3f0b3dc0ff7cca084ca880b687712c720caa5f375a432fecaa875a0e97357887b26&scene=21#wechat_redirect">59.合併單元格
詳細講解了在VBA中實現合併單元格操作的Merge方法,包括其語法和參數說明,介紹了相關的方法和屬性:UnMerge方法、MergeArea屬性、MergeCells屬性。提供了3個應用示例:①判斷單元格是否為合併單元格並取消單元格合併、②判斷單元格是否包含在合併單元格區域、③合併內容相同的單元格(與AdvancedFilter方法結合、DisplayAlerts屬性)。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912156&idx=1&sn=bfb74323974188ee2c7bc61f8dd9b526&chksm=84873a1bb3f0b30d0e712be0310b1b1a1df6c8e46b6e80571eb8b40692a02120c40fa348f098&scene=21#wechat_redirect">60.在VBA中獲取或者設置單元格的尺寸和位置
集中介紹了Range對象與單元格尺寸和位置相關的屬性和方法:ColumnWidth屬性、RowHeight屬性、UseStandardHeight屬性、UseStandardWidth屬性、Width屬性、Height屬性、Left屬性、Top屬性,以及AutoFit方法。提供了5個應用示例:①設置所選區域的列寬為所在列中最大列的列寬、②獲取單元格的行高、③設置輸入行行高的最小值、④恢復工作表中行高列寬的標準尺寸、⑤在工作表單元格中添加組合框(DropDown對象)。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912181&idx=1&sn=56d8976908f92e886d16592de3664d77&chksm=84873a32b3f0b324ce4d74f5a642f1d2680ac274421a065216d1d1be815f6493a576b063ad49&scene=21#wechat_redirect">61.設置單元格格式
概要地介紹了設置單元格格式的對象、屬性和方法:Font對象、Interior對象、Border對象、BordersAround方法、HorizontalAlignment屬性、VerticalAlignment屬性、Orientation屬性、WrapText屬性、ShrinkToFit屬性、Justify方法、Style屬性。提供了幾段代碼:①列出xlPattern常量表示的圖案、②列出顏色面板中的顏色及索引值、③列出xlBordersIndex常量對應的邊框、④列出邊框線條型式。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912200&idx=1&sn=3feb608a577de9996b02c1c893713421&chksm=84873a4fb3f0b35901fd81ecf7ba56e228835fdba8475e6f3ac562098018b9af3d080ef030f7&scene=21#wechat_redirect">62.設置數字格式
介紹了在VBA中設置或者獲取數字格式的NumberFormat屬性及相關代碼。列舉了5個示例:①單元格數值 VS.單元格文本值、②獲取單元格數字格式、③統計單元格區域中某數字格式出現的次數、④將所選單元格區域中的電話號碼設置為指定格式、⑤替換格式。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912382&idx=1&sn=fef8178e0adb034503fe90b38f057823&chksm=848739f9b3f0b0ef1164ff62752657ea385a51ce7c1eb667776e839737a2362c4d583a0b0d84&scene=21#wechat_redirect">63.單元格批註
講解在VBA中實現單元格批註的一系列操作,包括設置批註的相關屬性和方法:AddComment方法、Comment屬性、Visible屬性、Text方法、ClearComments方法、Author屬性、Shape屬性、Previous屬性、Next屬性、Delete方法。給出了3個示例:①添加單元格批註、②獲取單元格批註、③在單元格批註中放置圖片。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912402&idx=1&sn=e77ac3dfeb7485fa5af08dd16c705f60&chksm=84873915b3f0b003c2984596bca654b465f9520ae9f877ff8373882545d51083896045fa45e4&scene=21#wechat_redirect">64.初步使用名稱
主要介紹Range對象關於名稱的屬性和方法,為進一步理解名稱及其應用打下基礎。包括Range對象的Name屬性、CreateNames方法、ApplyNames方法、ListNames方法。給出了5個示例:①列出工作簿中的所有命名區域的名稱、②對命名區域進行格式化操作、③以命名區域為基準移動區域、④以命名區域為基準擴展區域、⑤遍曆命名區域。
href="http://mp.weixin.qq.com/s?__biz=MzA3NTMzMjMyOA==&mid=2650912417&idx=1&sn=4f60bd28690d14044d5b33336a011185&chksm=84873926b3f0b030e19bb7ae12f5d66e172b0c41f202d7ad99a34cb92a6764ac983ae0c55cda&scene=21#wechat_redirect">65.補遺——Range對象其他一些屬性和方法
主要介紹前面系列文章中還沒有講解的Range對象的一些屬性和方法:Insert方法、Delete方法、Clear方法系列、CopyPicture方法、CurrentArray屬性、Characters屬性、Item屬性、Next屬性、Previous屬性、Errors屬性、Calculate方法、Validation屬性、FormatConditions屬性,給出了相應的圖文對照。
您覺得以上關於Range對象的屬性和方法的介紹還有遺漏的嗎?可以更簡單些嗎?形式還可以更生動活潑些嗎?
歡迎您在下面留言。
本文及文中介紹的30多篇文章均首發於[ 完美Excel ]微信公眾號:excelperfect。
推薦閱讀:
TAG:VBA |