excel中,滑鼠移動到一個單元格上時,如果已經添加了批注,會自動顯示批注。
現在想實作,滑鼠移動到一個單元格上時,沒有批注自動添加批注的效果。
單元格內容為姓名,自動添加另一個excel表中的對應姓名人員的簡歷內容為批注。請教各位高手。
uj5u.com熱心網友回復:
我還想:只要我打開編程軟體,它就“自動的按我的想法把程式代碼寫好”呢!!!!!

你這種想法就不正確(也許是對需求的描述不準確)。
Excel的作業表不會觸發“滑鼠移動”的訊息,你真要“移動滑鼠”時處理,
那可能只有用一個后臺執行緒不停的獲取滑鼠指標坐標、計算它在哪個單元格上,再做相應的處理。
相對“正確點”的想法,應該是對“活動單元格”進行處理!
但是:
1. 要“自動添加備注”,不可能一股腦兒的把你“選定”過的單元格都添加備注吧!
總得有個判斷,哪列的單元格要添加、哪些列的不添加。
2. 你的“另一個表”,是什么樣的資料格式?
“名字”如何去“對應”?“內容”在哪兒?憑什么去“定位、訪問”另一個表?
這些都不說清楚,你覺得誰能給你一個有效的解決方法!!!
uj5u.com熱心網友回復:
這個需求實作不了,至少是相當復雜。。uj5u.com熱心網友回復:
不知道你要的是哪種效果,所有單元格滑鼠點上去的時候會顯示批注來?還是說根本不設定批注,但是滑鼠點上去會模擬出批注的效果。第一種,因為除非強制顯示所有批注,否則只有被滑鼠指著的單元格才會顯示批注出來。所以只要回圈遍歷每個單元格,挨個加上批注并隱藏就行,并不需要依靠代碼臨時動態(當然也可以臨時設定,不過多此一舉了,除非你需要顯示的內容實時在變化)。
Sheet1.Range("B2").AddComment
Sheet1.Range("B2").Comment.Visible = False
Sheet1.Range("B2").Comment.Text Text:="asdfasdf"第二種,無法實作滑鼠MouseOver的時候顯示批注,只能在SelectionChange事件里寫代碼。具體的操作是:創建一個文本框,隨著滑鼠選中不同的單元格,為這個文本框賦值并修改它的Left和Top值,使之緊貼著激活單元格的右側。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Sheet1.Shapes.Range(Array("TextBox 1"))
.TextFrame2.TextRange.Characters.Text = "當前單元格:" + Target.AddressLocal
.Left = Target.Left + Target.Width
.Top = Target.Top
End With
End Sub
uj5u.com熱心網友回復:
自繪是早晚要學會的技能。
uj5u.com熱心網友回復:
樓主,你的要求需要寫滑鼠Hook了,VB可以實作,VBA的不太確定。uj5u.com熱心網友回復:
估計“滑鼠全域訊息HOOK”還是可以的,VBA中也能搞。
uj5u.com熱心網友回復:
哦哦,好的,我去查查看。
uj5u.com熱心網友回復:
換個思路,遍歷指定的單元格。如果有批注就算了,沒有批注就根據規則給他加上。這樣滑鼠只要挪上去就可以看到批注。
你要的效果不就是滑鼠挪到單元格上跳出批注么?為毛一定要滑鼠挪上去才添加批注。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/48511.html
標籤:VBA
