返回列表 上一主題 發帖

儲存格裡的註解

回復 1# fangsc
VLOOKUP傳回並非儲存格物件,而是儲存格的值
內建函數無法取得註解內容,寫個自定義函數解決

註解文字.zip (6.2 KB)
學海無涯_不恥下問

TOP

回復 3# fangsc

不懂你的意思,要用VBA加入儲存格註解當然可行
  1. Sub nn()
  2. If Range("C3").Comment Is Nothing Then 'C3儲存格沒有註解
  3.   Range("C3").AddComment "TEST"  ''C3儲存格加入註解
  4.   Else  '否則
  5.    Range("C3").Comment.Text Range("C3").Comment.Text & Chr(10) & "addtext"  '加入註解文字
  6. End If
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 5# fangsc

學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2012-8-23 09:55 編輯

回復 7# fangsc
  1. Sub ex()
  2. Dim Rng As Range, A As Range
  3. For Each A In Range("J4").CurrentRegion.SpecialCells(xlCellTypeFormulas)
  4. If A.FormulaLocal Like "=VLOOKUP(*,*,*,*)" Then
  5.   ar = Split(Replace(Replace(A.FormulaLocal, "VLOOKUP(", ""), ")", ""), ",")
  6.   Set Rng = Range(ar(1))
  7.   k = Application.Match(Range(ar(0)), Rng.Columns(1), 0)
  8.   If Not A.Comment Is Nothing Then A.Comment.Delete
  9.   If Not Rng(k, Val(ar(2))).Comment Is Nothing Then
  10.     A.AddComment Rng(k, Val(ar(2))).Comment.Text
  11.   End If
  12. End If
  13. Next
  14. End Sub
複製代碼
註解文字.zip (12.29 KB)
學海無涯_不恥下問

TOP

回復 10# jsc0518
搭配重算事件
  1. Private Sub Worksheet_Calculate() '僅適用VLOOKUP函數
  2. Dim A As Range, C As Range, Rng As Range, Sht As Worksheet, Mc As Comment
  3. For Each A In Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas)
  4. If A.FormulaLocal Like "=VLOOKUP(*,*,*,*)" Then '是否是VLOOKUP函數
  5. fx = Split(Split(A.Formula, "(")(1), ",") '公式分解
  6. Set Rng = Sheets(Split(fx(1), "!")(0)).Range(Split(fx(1), "!")(1)) '來源資料範圍
  7.     x = Range(fx(0)) '第一欄的搜尋值
  8.     r = Rng.Find(x).Row '找到來源資料的列號
  9.     k = Val(fx(2)) + Rng.Column - 1 '來源資料位於整個工作表的欄號
  10.     If Not A.Comment Is Nothing Then A.Comment.Delete '刪除公式儲存格內的註解
  11.     Set Mc = Rng.Parent.Cells(r, k).Comment '來源資料的註解
  12.     If Not Mc Is Nothing Then A.AddComment Rng.Parent.Cells(r, k).Comment.Text '加入來源註解
  13. End If
  14. Next
  15. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題