日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vba单元格批量赋值_Excel●VBA●如何把批注中的信息批量提取到单元格?

發布時間:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vba单元格批量赋值_Excel●VBA●如何把批注中的信息批量提取到单元格? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Excel中,批注(Comment)是一類特殊的數據。

利用批注,我們可以為單元格添加備注信息(如解釋、說明),方便表格閱讀者了解數據背后的信息。

然而,由于不當的使用習慣,我們也經常碰到一些表格,制表人將極其復雜的備注信息寫入到批注而非單元格中,導致后期想提取批注時非常麻煩。

如上圖,A列“系統單號”中每個單元格都帶有批注,所批注信息為系統單號對應的所有柜號(文本,按行排列)。

實際上A、B列有很多行數據,本案例使用4行僅作演示之用。

現在需求是——如何快速將A列所有批注信息(即柜號)提取出來,并且寫入獨立的單元格,完成右側樣式表格。

怎么辦?這是一個相當棘手的問題!

如果手工處理的話,那就要一個一個單元格復制批注內容、粘貼后再分列、轉置……,工作量極大,我保證你處理完之后手抽筋!

那應該怎么處理呢?下面教你用VBA完成一鍵處理。

第1步:準備工作假設,我們要將目標數據提取至E、F、G3列,提前做好表頭:

第2步:編寫代碼

ALT+F11,打開VBE,在工作表對應模塊中編寫代碼如下:Sub 提取批注內容()Dim arr() As String ?'定義一個動態數據,字符型For i = 3 To 6arr = Split(Cells(i, 1).Comment.Text, vbLf)For j = LBound(arr()) To UBound(arr())If arr(j) <> "" Then[e65536].End(3).Offset(1, 0) = Cells(i, 1)[f65536].End(3).Offset(1, 0) = arr(j)[g65536].End(3).Offset(1, 0) = Cells(i, 2)End IfNextNextEnd Sub

將光標置于代碼任何位置,按F5運行程序。幾秒鐘后,就可以在Excel中看到執行結果了:

本例中,利用Split方法,對批注文本(Comment.Text)進行拆分,而拆分所依據的符號是回車符(Vblf)。

這樣,將拆分后的結果儲存到動態數組arr()中,最后再將數組元素賦值給目標單元格即可。

關鍵知識點:

1、定義動態數據arr()

2、split方法,利用回車符(vblf)進行拆分

3、由于原批注末尾有多個空行,所以拆分后要加上IF判斷,不為空才執行

4、split拆分后的結果是一個數組,最后將數組內容依次寫入單元格

5、OFFSE方法,對單元格進行偏移

總結

以上是生活随笔為你收集整理的vba单元格批量赋值_Excel●VBA●如何把批注中的信息批量提取到单元格?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。