Excel獲取單元格批註
Microsoft Office中的Excel軟體有著強大的資料統計分析功能,最近自己碰到一個問題,需要將一列單元格中的批註提取到另外的一列中去。如果數量比較少大可以通過“Ctrl+C”和“Ctrl+V”來實現,但是面對成百上千行資料的就出現麻煩了。自己就在網上搜尋了一些關於此方面的資料,發現Excel有兩個方面的應用非常實用:VBA和巨集表函式,這裡只是舉出其中兩個簡單的例子,如有興趣可以深究。
一、獲取單元格批註
VBA全稱為:Visual Basic for Applications,是一種Visual Basic的一種巨集語言,主要能用來擴充套件Windows的應用程式功能,特別是Microsoft Office軟體。雖然這種語言較為古老,但在Microsoft Office軟體風靡全球的情形下還是有很大的應用價值,特別是一些使用者非常熟悉了Excel的操作介面之後就對它有著非常大的依賴性,通過Excel自帶的VBA程式來對資料進行處理可以帶來極大的方便。
下面就講講如何通過VBA獲取單元格的一個小例子,主要參考了http://club.excelhome.net/forum.php?mod=viewthread&tid=938019中5樓“xinhunter”發的帖子來實現的。
如下圖所示,A列中有多行帶有批註的單元格,如何將A列中的單元格都提取到對應的E列中來呢?通過如下的幾個步驟可以成功地獲取單元格批註。
1、 開啟VBA,新建模組,建立使用者自定義函式,如下圖所示:
2、 編寫自定義函式GetComment()
Function GetComment(myRange As Range) As String
GetComment = myRange.Comment.Text
End Function
如下圖所示:
3、 呼叫自定義函式GetComment()。在E1的編輯框中輸入:=GetComent(A1),選定之後按“F9”,就會變成如下的情況:
按“F9”呼叫GetComment()函式之後,成功獲取批註如下:
4、 呼叫SUBSTITUTE()函式,去掉多餘文字
從上圖可以看出,E1單元格中已經成功地將A1中的批註獲取到了,但是包含了當前編輯者的姓名,如上圖中的“ZKH:”,可以通過呼叫如下函式去掉多於的使用者名稱文字。如下圖所示:
5、拖拽填充柄,依次獲取單元格批註
二、獲取某路徑下檔名
除了Excel自帶的函式以及通過VBA自定義的函式之外,我們在Excel中有可能用到的一種函式叫做“巨集表函式”,以下也通過一個具體的應用小例子來簡單演示。
在應用過程中,也許會碰到將一堆檔案的名字加以統計起來的需求,如果檔案數較多的時候是個麻煩的事情,Excel中自帶的巨集表函式可以很輕鬆地解決類似這樣的問題,主要以下操作步驟:
1、 定義新名稱
通過“公式→定義新名稱”,定義一個“myfile”的巨集表函式,其中名稱myfile呼叫了Excel中自帶的“FILES()”的函式,如下所示:
2、 呼叫myfiles(),在C1輸入“=myfile”按“F9”
路徑檔案如下:
執行效果如下:
3、 調整效果
如上圖所示,將“D:\新建資料夾\”路徑下的4個檔名都獲取到C1的單元格中,能否將檔名逐個地依次獲取到單元格呢?答案是可以的,我們還可以對指定的檔案型別加以獲取:
呼叫INDEX()函式,如下:
拖拽填充柄如下:
4、 加條件判斷
如上圖所示,下拉的單元格數超出了檔案數的時候,容易出現錯誤亂碼如“#REF!”,可通過IF條件函式加以判斷如下:
5、 指定檔案型別獲取
如在myfiles名稱中指定檔案型別,所定義的巨集表函式可只獲取指定的檔名列表,如下指定.xls檔案型別:
結果如下:
2014-10-27,為了每次使用方便,通過程式碼建立以上名稱以及呼叫:
//VBA,執行巨集建立名稱:
Sub myFile()
' 獲取路徑下所有檔名'
ActiveWorkbook.Names.Add Name:="myfile", RefersToR1C1:= _
"=FILES(""C:\Users\ZKH\Desktop\2014-10-20\*.*"")"
ActiveWorkbook.Names("myfile").Comment = ""
End Sub
//呼叫
=IF(ROW()>COUNTA(myfile),"",INDEX(myfile,ROW()))
相關文章
- Java 獲取Excel分頁座標位置(單元格)JavaExcel
- C# 獲取Excel的指定單元格的值C#Excel
- JavaScript 獲取表格指定td單元格JavaScript
- excel匯入,讀取日期單元格轉php日期ExcelPHP
- jQuery獲取點選td單元格的值jQuery
- POI設定excel單元格Excel
- js獲取表格指定行中所有的單元格JS
- 如何隱藏Excel中單元格公式且其他單元格可修改Excel公式
- 快速選取excel中所有包含公式的單元格的方法技巧Excel公式
- excel合併的單元格重新填充Excel
- 單元格資料鑽取
- Excel——如何使用VBA操作單元格的格式Excel
- Excel合併單元格的兩種簡單方法Excel
- excel中的單元格怎麼重新命名?Excel
- Excel合併單元格資料的方法教程Excel
- JavaScript 獲取td單元格內容JavaScript
- js獲取指定單元格的內容程式碼例項例項JS
- js獲取點選單元格中的內容程式碼例項JS
- EasyUI DataGrid 單元格編輯 註釋版UI
- Java 獲取Word批註所標記的文字和圖片Java
- java poi操作excel 新增 鎖定單元格保護JavaExcel
- 為Excel工作表單元格命名的兩種方法Excel
- 如何定製excel單元格的斜線分隔線Excel
- Excel2007鎖定單元格Excel
- VC下設定Excel單元格的邊框 (轉)Excel
- Delphi_Excel例子:單元格複製貼上 (轉)Excel
- C#使用 NPOI 新增圖片到 Excel 單元格C#Excel
- Java 獲取Excel中的表單控制元件JavaExcel控制元件
- Java Servlet 實現合併多單元格匯出ExcelJavaServletExcel
- EXCEL破冰 - 鎖定單元格樣式和輸入格式Excel
- excel圖表標題新增和引用單元格的方法Excel
- excel斜槓分割表格怎麼做 excel單元格斜槓拆分上下打字Excel
- Excel表格新增編輯或刪除批註Excel
- excel 如何為單元格字串前後批量新增雙引號?Excel字串
- python學習筆記 - 設定Excel單元格樣式Python筆記Excel
- Excel2010單元格快速生成序列的方法Excel
- pageoffice給線上開啟的excel單元格插入圖片Excel
- 如何在Excel中錄入時開啟單元格自動下拉選單Excel