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
- JavaScript 獲取td單元格內容JavaScript
- JavaScript 獲取表格指定td單元格JavaScript
- excel匯入,讀取日期單元格轉php日期ExcelPHP
- jQuery獲取點選td單元格的值jQuery
- 如何標記excel單元格Excel
- POI設定excel單元格Excel
- Excel-單元格內換行Excel
- excel合併的單元格重新填充Excel
- 單元格資料鑽取
- poi解析Excel,遍歷表結構,獲取單元格內容,拼接sql語句,寫入TXT檔案ExcelSQL
- wps/excel計算單元格內的算式Excel
- java poi 讀取模版excel寫入資料並保持原本單元格樣式JavaExcel
- Java 獲取Excel中的表單控制元件JavaExcel控制元件
- Java 獲取Word批註所標記的文字和圖片Java
- C#使用 NPOI 新增圖片到 Excel 單元格C#Excel
- vxe-table 使用單元格選取功能
- excel斜槓分割表格怎麼做 excel單元格斜槓拆分上下打字Excel
- 如何讓excel單元格內只能輸入指定內容?Excel
- EXCEL破冰 - 鎖定單元格樣式和輸入格式Excel
- Java Servlet 實現合併多單元格匯出ExcelJavaServletExcel
- python學習筆記 - 設定Excel單元格樣式Python筆記Excel
- excel 如何為單元格字串前後批量新增雙引號?Excel字串
- pageoffice給線上開啟的excel單元格插入圖片Excel
- 在excel中某些單元格內批量增加相同的內容Excel
- wps的excel中的單元格限定輸入的內容Excel
- phpstrom 註冊碼獲取PHP
- 分割單元格
- 批次選取不相鄰單元格(同填充色)
- ABAP--一個讀取EXCEL單元格的內容超過256個字元的程式碼樣例Excel字元
- 快速查詢EXCEL整個工作表中的合併單元格Excel
- excel生成單元格帶下拉選項的模板 + 資料匯入Excel
- python給excel單元格批次生成超連結(pandas+openpyxl)PythonExcel
- excel合併單元格快捷鍵 excel多個表格內容合併到一起Excel
- excel怎麼換行在同一單元格內 excel一個框裡怎麼換行Excel
- Laravel Excel 如何獲取 Excel 檔案的公式結果LaravelExcel公式
- 超連結鑽取之圖表鑽取、單元格資料鑽取
- 4.20 使用條件格式標識包含指定文字的單元格 [Excel教程]Excel
- vxe-table 單元格選取功能與多個區域選取功能