標題:
儲存格裡的註解
[打印本頁]
作者:
fangsc
時間:
2012-8-22 12:17
標題:
儲存格裡的註解
請教:
用Vlookup找出的儲存格內容, 如何才能將註解也一起帶過來 ?
是否有函數可以用?
作者:
Hsieh
時間:
2012-8-22 14:35
回復
1#
fangsc
VLOOKUP傳回並非儲存格物件,而是儲存格的值
內建函數無法取得註解內容,寫個自定義函數解決
[attach]12226[/attach]
作者:
fangsc
時間:
2012-8-22 16:19
回復
2#
Hsieh
感謝版主的指導.
如果用VBA可以將註解直接加在目地儲存格的註解裡嗎?
作者:
Hsieh
時間:
2012-8-22 18:54
回復
3#
fangsc
不懂你的意思,要用VBA加入儲存格註解當然可行
Sub nn()
If Range("C3").Comment Is Nothing Then 'C3儲存格沒有註解
Range("C3").AddComment "TEST" ''C3儲存格加入註解
Else '否則
Range("C3").Comment.Text Range("C3").Comment.Text & Chr(10) & "addtext" '加入註解文字
End If
End Sub
複製代碼
作者:
fangsc
時間:
2012-8-22 21:35
回復
4#
Hsieh
實在抱歉,我沒有說清楚,浪費了你的時間.
在用vlookup之後, 想再run程式將來源資料裡的註解加進目地資料的儲存格裡.
感謝你.
作者:
Hsieh
時間:
2012-8-22 22:00
回復
5#
fangsc
[attach]12233[/attach]
作者:
fangsc
時間:
2012-8-22 22:50
回復
6#
Hsieh
對不起,我還是沒表達清楚.
在用vlookup之後, 想再run程式將來源資料裡的註解加進目地資料 "儲存格的註解" 裡.
(就是把來源資料的註解,帶進目地資料儲存格的註解裡)
抱歉 & 感謝...
作者:
Hsieh
時間:
2012-8-23 09:53
本帖最後由 Hsieh 於 2012-8-23 09:55 編輯
回復
7#
fangsc
[attach]12238[/attach]
Sub ex()
Dim Rng As Range, A As Range
For Each A In Range("J4").CurrentRegion.SpecialCells(xlCellTypeFormulas)
If A.FormulaLocal Like "=VLOOKUP(*,*,*,*)" Then
ar = Split(Replace(Replace(A.FormulaLocal, "VLOOKUP(", ""), ")", ""), ",")
Set Rng = Range(ar(1))
k = Application.Match(Range(ar(0)), Rng.Columns(1), 0)
If Not A.Comment Is Nothing Then A.Comment.Delete
If Not Rng(k, Val(ar(2))).Comment Is Nothing Then
A.AddComment Rng(k, Val(ar(2))).Comment.Text
End If
End If
Next
End Sub
複製代碼
[attach]12237[/attach]
作者:
fangsc
時間:
2012-8-23 22:24
感謝版主,目前可以用了.
不過,看起來有點難,我得再融會貫通一下,
才能運用得好一些.
作者:
jsc0518
時間:
2023-6-29 08:21
回復
8#
Hsieh
Dear Hsieh,
早安!請教一下,若來源資料是另一個工作表,那語法要改變哪裡呢?
[attach]36662[/attach]
謝謝您!!
作者:
Hsieh
時間:
2023-6-29 14:30
回復
10#
jsc0518
搭配重算事件
Private Sub Worksheet_Calculate() '僅適用VLOOKUP函數
Dim A As Range, C As Range, Rng As Range, Sht As Worksheet, Mc As Comment
For Each A In Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas)
If A.FormulaLocal Like "=VLOOKUP(*,*,*,*)" Then '是否是VLOOKUP函數
fx = Split(Split(A.Formula, "(")(1), ",") '公式分解
Set Rng = Sheets(Split(fx(1), "!")(0)).Range(Split(fx(1), "!")(1)) '來源資料範圍
x = Range(fx(0)) '第一欄的搜尋值
r = Rng.Find(x).Row '找到來源資料的列號
k = Val(fx(2)) + Rng.Column - 1 '來源資料位於整個工作表的欄號
If Not A.Comment Is Nothing Then A.Comment.Delete '刪除公式儲存格內的註解
Set Mc = Rng.Parent.Cells(r, k).Comment '來源資料的註解
If Not Mc Is Nothing Then A.AddComment Rng.Parent.Cells(r, k).Comment.Text '加入來源註解
End If
Next
End Sub
複製代碼
作者:
jsc0518
時間:
2023-6-29 20:44
回復
11#
Hsieh
Dear Hsieh,
感謝您的熱心回覆,有個問題與您請教
.若"來源資料"是在
Sheet3
的
F4欄列
開始,下面語法需要修改哪裡呢?
Set Rng = Sheets(Split(fx(1), "!")(0)).Range(Split(fx(1), "!")(1)) '來源資料範圍
謝謝您
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)